mirror of https://github.com/mkerrisk/man-pages
statx.2: Remove information migrated to inode(7)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
96dea201cd
commit
19cda35de9
212
man2/statx.2
212
man2/statx.2
|
@ -337,7 +337,9 @@ structure are:
|
||||||
.TP
|
.TP
|
||||||
.I stx_mode
|
.I stx_mode
|
||||||
The file type and mode.
|
The file type and mode.
|
||||||
This is described in more detail below.
|
See
|
||||||
|
.BR inode (7)
|
||||||
|
for details.
|
||||||
.TP
|
.TP
|
||||||
.I stx_size
|
.I stx_size
|
||||||
The size of the file (if it is a regular file or a symbolic link) in bytes.
|
The size of the file (if it is a regular file or a symbolic link) in bytes.
|
||||||
|
@ -376,63 +378,18 @@ Further status information about the file (see below for more information).
|
||||||
.TP
|
.TP
|
||||||
.I stx_atime
|
.I stx_atime
|
||||||
The file's last access timestamp.
|
The file's last access timestamp.
|
||||||
This field is changed by file accesses, for example, by
|
|
||||||
.BR execve (2),
|
|
||||||
.BR mknod (2),
|
|
||||||
.BR pipe (2),
|
|
||||||
.BR utime (2),
|
|
||||||
and
|
|
||||||
.BR read (2)
|
|
||||||
(of more than zero bytes).
|
|
||||||
Other routines, such as
|
|
||||||
.BR mmap (2),
|
|
||||||
may or may not update it.
|
|
||||||
.TP
|
.TP
|
||||||
.I stx_btime
|
.I stx_btime
|
||||||
The file's creation timestamp.
|
The file's creation timestamp.
|
||||||
This is set on file creation and not changed subsequently.
|
|
||||||
.TP
|
.TP
|
||||||
.I stx_ctime
|
.I stx_ctime
|
||||||
The file's last status change timestamp.
|
The file's last status change timestamp.
|
||||||
This field is changed by writing or
|
|
||||||
by setting inode information (i.e., owner, group, link count, mode, etc.).
|
|
||||||
.TP
|
.TP
|
||||||
.I stx_mtime
|
.I stx_mtime
|
||||||
The file's last modification timestamp.
|
The file's last modification timestamp.
|
||||||
This is changed by file modifications,
|
|
||||||
for example, by
|
|
||||||
.BR mknod (2),
|
|
||||||
.BR truncate (2),
|
|
||||||
.BR utime (2),
|
|
||||||
and
|
|
||||||
.BR write (2)
|
|
||||||
(of more than zero bytes).
|
|
||||||
Moreover, the modification time of a directory is
|
|
||||||
changed by the creation or deletion of files in that directory.
|
|
||||||
This field is
|
|
||||||
.I not
|
|
||||||
changed for changes in owner, group, hard link count, or mode.
|
|
||||||
.PP
|
.PP
|
||||||
Not all of the Linux filesystems implement all of the timestamp fields.
|
For further information on the above fields, see
|
||||||
Some filesystems allow mounting in such a way that file and/or
|
.BR inode (7).
|
||||||
directory accesses do not cause an update of the
|
|
||||||
.I stx_atime
|
|
||||||
field.
|
|
||||||
(See
|
|
||||||
.IR noatime ,
|
|
||||||
.IR nodiratime ,
|
|
||||||
and
|
|
||||||
.I relatime
|
|
||||||
in
|
|
||||||
.BR mount (8),
|
|
||||||
and related information in
|
|
||||||
.BR mount (2).)
|
|
||||||
In addition,
|
|
||||||
.I stx_atime
|
|
||||||
is not updated if a file is opened with the
|
|
||||||
.BR O_NOATIME ;
|
|
||||||
see
|
|
||||||
.BR open (2).
|
|
||||||
.\"
|
.\"
|
||||||
.SS File attributes
|
.SS File attributes
|
||||||
.PP
|
.PP
|
||||||
|
@ -466,165 +423,6 @@ See
|
||||||
.TP
|
.TP
|
||||||
.B STATX_ATTR_ENCRYPTED
|
.B STATX_ATTR_ENCRYPTED
|
||||||
A key is required for the file to be encrypted by the filesystem.
|
A key is required for the file to be encrypted by the filesystem.
|
||||||
.SS File type and mode
|
|
||||||
.PP
|
|
||||||
The
|
|
||||||
.I stx_mode
|
|
||||||
field contains the combined file type and mode.
|
|
||||||
POSIX refers to the bits in
|
|
||||||
this field corresponding to the mask
|
|
||||||
.B S_IFMT
|
|
||||||
(see below) as the
|
|
||||||
.IR "file type" ,
|
|
||||||
the 12 bits corresponding to the mask 07777 as the
|
|
||||||
.IR "file mode bits"
|
|
||||||
and the least significant 9 bits (0777) as the
|
|
||||||
.IR "file permission bits" .
|
|
||||||
.IP
|
|
||||||
The following mask values are defined for the file type of the
|
|
||||||
.I stx_mode
|
|
||||||
field:
|
|
||||||
.in +4n
|
|
||||||
.TS
|
|
||||||
lB l l.
|
|
||||||
S_IFMT 0170000 bit mask for the file type bit field
|
|
||||||
|
|
||||||
S_IFSOCK 0140000 socket
|
|
||||||
S_IFLNK 0120000 symbolic link
|
|
||||||
S_IFREG 0100000 regular file
|
|
||||||
S_IFBLK 0060000 block device
|
|
||||||
S_IFDIR 0040000 directory
|
|
||||||
S_IFCHR 0020000 character device
|
|
||||||
S_IFIFO 0010000 FIFO
|
|
||||||
.TE
|
|
||||||
.in
|
|
||||||
.IP
|
|
||||||
Note that
|
|
||||||
.I stx_mode
|
|
||||||
has two mask flags covering it: one for the type and one for the mode bits.
|
|
||||||
.PP
|
|
||||||
To test for a regular file (for example), one could write:
|
|
||||||
.nf
|
|
||||||
.in +4n
|
|
||||||
statx(AT_FDCWD, pathname, 0, STATX_TYPE, &sb);
|
|
||||||
if ((sb.stx_mask & STATX_TYPE) && (sb.stx_mode & S_IFMT) == S_IFREG) {
|
|
||||||
/* Handle regular file */
|
|
||||||
}
|
|
||||||
.in
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
Because tests of the above form are common, additional macros are defined by
|
|
||||||
POSIX to allow the test of the file type in
|
|
||||||
.I stx_mode
|
|
||||||
to be written more concisely:
|
|
||||||
.RS 4
|
|
||||||
.TS
|
|
||||||
lB l.
|
|
||||||
\fBS_ISREG\fR(m) Is it a regular file?
|
|
||||||
\fBS_ISDIR\fR(m) Is it a directory?
|
|
||||||
\fBS_ISCHR\fR(m) Is it a character device?
|
|
||||||
\fBS_ISBLK\fR(m) Is it a block device?
|
|
||||||
\fBS_ISFIFO\fR(m) Is it a FIFO (named pipe)?
|
|
||||||
\fBS_ISLNK\fR(m) Is it a symbolic link? (Not in POSIX.1-1996.)
|
|
||||||
\fBS_ISSOCK\fR(m) Is it a socket? (Not in POSIX.1-1996.)
|
|
||||||
.TE
|
|
||||||
.RE
|
|
||||||
.PP
|
|
||||||
The preceding code snippet could thus be rewritten as:
|
|
||||||
|
|
||||||
.nf
|
|
||||||
.in +4n
|
|
||||||
statx(AT_FDCWD, pathname, 0, STATX_TYPE, &sb);
|
|
||||||
if ((sb.stx_mask & STATX_TYPE) && S_ISREG(sb.stx_mode)) {
|
|
||||||
/* Handle regular file */
|
|
||||||
}
|
|
||||||
.in
|
|
||||||
.fi
|
|
||||||
.PP
|
|
||||||
The definitions of most of the above file type test macros
|
|
||||||
are provided if any of the following feature test macros is defined:
|
|
||||||
.BR _BSD_SOURCE
|
|
||||||
(in glibc 2.19 and earlier),
|
|
||||||
.BR _SVID_SOURCE
|
|
||||||
(in glibc 2.19 and earlier),
|
|
||||||
or
|
|
||||||
.BR _DEFAULT_SOURCE
|
|
||||||
(in glibc 2.20 and later).
|
|
||||||
In addition, definitions of all of the above macros except
|
|
||||||
.BR S_IFSOCK
|
|
||||||
and
|
|
||||||
.BR S_ISSOCK ()
|
|
||||||
are provided if
|
|
||||||
.BR _XOPEN_SOURCE
|
|
||||||
is defined.
|
|
||||||
The definition of
|
|
||||||
.BR S_IFSOCK
|
|
||||||
can also be exposed by defining
|
|
||||||
.BR _XOPEN_SOURCE
|
|
||||||
with a value of 500 or greater.
|
|
||||||
|
|
||||||
The definition of
|
|
||||||
.BR S_ISSOCK ()
|
|
||||||
is exposed if any of the following feature test macros is defined:
|
|
||||||
.BR _BSD_SOURCE
|
|
||||||
(in glibc 2.19 and earlier),
|
|
||||||
.BR _DEFAULT_SOURCE
|
|
||||||
(in glibc 2.20 and later),
|
|
||||||
.BR _XOPEN_SOURCE
|
|
||||||
with a value of 500 or greater, or
|
|
||||||
.BR _POSIX_C_SOURCE
|
|
||||||
with a value of 200112L or greater.
|
|
||||||
.PP
|
|
||||||
The following mask values are defined for
|
|
||||||
the file mode component of the
|
|
||||||
.I stx_mode
|
|
||||||
field:
|
|
||||||
.in +4n
|
|
||||||
.TS
|
|
||||||
lB l l.
|
|
||||||
S_ISUID 04000 set-user-ID bit
|
|
||||||
S_ISGID 02000 set-group-ID bit (see below)
|
|
||||||
S_ISVTX 01000 sticky bit (see below)
|
|
||||||
|
|
||||||
S_IRWXU 00700 owner has read, write, and execute permission
|
|
||||||
S_IRUSR 00400 owner has read permission
|
|
||||||
S_IWUSR 00200 owner has write permission
|
|
||||||
S_IXUSR 00100 owner has execute permission
|
|
||||||
|
|
||||||
S_IRWXG 00070 group has read, write, and execute permission
|
|
||||||
S_IRGRP 00040 group has read permission
|
|
||||||
S_IWGRP 00020 group has write permission
|
|
||||||
S_IXGRP 00010 group has execute permission
|
|
||||||
|
|
||||||
S_IRWXO 00007 T{
|
|
||||||
others (not in group) have read, write, and execute permission
|
|
||||||
T}
|
|
||||||
S_IROTH 00004 others have read permission
|
|
||||||
S_IWOTH 00002 others have write permission
|
|
||||||
S_IXOTH 00001 others have execute permission
|
|
||||||
.TE
|
|
||||||
.in
|
|
||||||
.P
|
|
||||||
The set-group-ID bit
|
|
||||||
.RB ( S_ISGID )
|
|
||||||
has several special uses.
|
|
||||||
For a directory, it indicates that BSD semantics is to be used
|
|
||||||
for that directory: files created there inherit their group ID from
|
|
||||||
the directory, not from the effective group ID of the creating process,
|
|
||||||
and directories created there will also get the
|
|
||||||
.B S_ISGID
|
|
||||||
bit set.
|
|
||||||
For a file that does not have the group execution bit
|
|
||||||
.RB ( S_IXGRP )
|
|
||||||
set,
|
|
||||||
the set-group-ID bit indicates mandatory file/record locking.
|
|
||||||
.P
|
|
||||||
The sticky bit
|
|
||||||
.RB ( S_ISVTX )
|
|
||||||
on a directory means that a file
|
|
||||||
in that directory can be renamed or deleted only by the owner
|
|
||||||
of the file, by the owner of the directory, and by a privileged
|
|
||||||
process.
|
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
On success, zero is returned.
|
On success, zero is returned.
|
||||||
On error, \-1 is returned, and
|
On error, \-1 is returned, and
|
||||||
|
|
Loading…
Reference in New Issue