Module posix.sys.stat
File Status Querying and Setting.
-
S_ISBLK (mode)
-
Test for a block special file.
Parameters:
Returns:
int
non-zero if mode represents a block special file
-
S_ISCHR (mode)
-
Test for a character special file.
Parameters:
Returns:
int
non-zero if mode represents a character special file
-
S_ISDIR (mode)
-
Test for a directory.
Parameters:
Returns:
int
non-zero if mode represents a directory
-
S_ISFIFO (mode)
-
Test for a fifo special file.
Parameters:
Returns:
int
non-zero if mode represents a fifo special file
-
S_ISLNK (mode)
-
Test for a symbolic link.
Parameters:
Returns:
int
non-zero if mode represents a symbolic link
-
S_ISREG (mode)
-
Test for a regular file.
Parameters:
Returns:
int
non-zero if mode represents a regular file
-
S_ISSOCK (mode)
-
Test for a socket.
Parameters:
Returns:
int
non-zero if mode represents a socket
-
chmod (path, mode)
-
Change the mode of the path.
Parameters:
- path
string
existing file path to act on
- mode
int
access modes to set for path
Returns:
int
0
, if successful
Or
-
nil
-
string
error message
-
int
errnum
See also:
Usage:
local sys_stat = require "posix.sys.stat"
sys_stat.chmod ('bin/dof', bit.bor (sys_stat.S_IRWXU, sys_stat.S_IRGRP))
-
fstat (fd)
-
Information about a file descriptor.
Parameters:
- fd
int
file descriptor to act on
Returns:
PosixStat
information about fd, if successful
Or
-
nil
-
string
error message
-
int
errnum
See also:
Usage:
local fcntl = require "posix.fcntl"
local sys_stat = require "posix.sys.stat"
local fd = assert(fcntl.open("/etc/hostname", fcntl.O_RDONLY))
for a, b in pairs (sys_stat.fstat(fd)) do print (a, b) end
-
lstat (path)
-
Information about an existing file path.
If file is a symbolic link, return information about the link itself.
Parameters:
Returns:
PosixStat
information about path, if successful
Or
-
nil
-
string
error message
-
int
errnum
See also:
Usage:
local sys_stat = require "posix.sys.stat"
for a, b in pairs (sys_stat.lstat "/etc/") do print (a, b) end
-
mkdir (path[, mode=511])
-
Make a directory.
Parameters:
- path
string
location in file system to create directory
- mode
int
access modes to set for path
(default 511)
Returns:
int
0
, if successful
Or
-
nil
-
string
error message
-
int
errnum
See also:
-
mkfifo (path[, mode=511])
-
Make a FIFO pipe.
Parameters:
- path
string
location in file system to create fifo
- mode
int
access modes to set for path
(default 511)
Returns:
int
file descriptor for path, if successful
Or
-
nil
-
string
error message
-
int
errnum
See also:
-
stat (path)
-
Information about an existing file path.
If file is a symbolic link, return information about the file the link points to.
Parameters:
Returns:
PosixStat
information about path, if successful
Or
-
nil
-
string
error message
-
int
errnum
See also:
Usage:
local sys_stat = require "posix.sys.stat"
for a, b in pairs (sys_stat.stat "/etc/") do print (a, b) end
-
umask (mode)
-
Set file mode creation mask.
Parameters:
- mode
int
new file creation mask
Returns:
int
previous umask
See also:
-
PosixStat
-
File state record.
Fields:
- st_dev
int
device id
- st_ino
int
inode number
- st_mode
int
mode of file
- st_nlink
int
number of hardlinks to file
- st_uid
int
user id of file owner
- st_gid
int
group id of file owner
- st_rdev
int
additional device specific id for special files
- st_size
int
file size in bytes
- st_atime
int
time of last access
- st_mtime
int
time of last data modification
- st_ctime
int
time of last state change
- st_blksize
int
preferred block size
- st_blocks
int
number of blocks allocated
-
posix.sys.stat
-
Stat constants.
Any constants not available in the underlying system will be
nil
valued.
Fields:
- S_IFMT
int
file type mode bitmask
- S_IFBLK
int
block special
- S_IFCHR
int
character special
- S_IFDIR
int
directory
- S_IFIFO
int
fifo
- S_IFLNK
int
symbolic link
- S_IFREG
int
regular file
- S_IFSOCK
int
socket
- S_IRWXU
int
user read, write and execute
- S_IRUSR
int
user read
- S_IWUSR
int
user write
- S_IXUSR
int
user execute
- S_IRWXG
int
group read, write and execute
- S_IRGRP
int
group read
- S_IWGRP
int
group write
- S_IXGRP
int
group execute
- S_IRWXO
int
other read, write and execute
- S_IROTH
int
other read
- S_IWOTH
int
other write
- S_IXOTH
int
other execute
- S_ISGID
int
set group id on execution
- S_ISUID
int
set user id on execution
Usage:
for name, value in pairs (require "posix.sys.stat") do
if type (value) == "number" then
print (name, value)
end
end