aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Somers <asomers@FreeBSD.org>2018-12-05 17:28:40 +0000
committerAlan Somers <asomers@FreeBSD.org>2018-12-05 17:28:40 +0000
commit006678fd055f6a935885fbf832c55e830e9b0ebc (patch)
treeb4a18da8a006f76ef95bcb572838a434b82f63bb
parent9d2877fc3dadd20e1701df1b4556a9d10d5f5cd4 (diff)
downloadsrc-006678fd055f6a935885fbf832c55e830e9b0ebc.tar.gz
src-006678fd055f6a935885fbf832c55e830e9b0ebc.zip
stat(2): clarify which syscalls modify file timestamps
The list of syscalls that modify st_atim, st_mtim, and st_ctim was quite out of date and probably not accurate to begin with. Update it, and make it clear that the list is open-ended. Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D18410
Notes
Notes: svn path=/head/; revision=341598
-rw-r--r--lib/libc/sys/stat.258
1 files changed, 33 insertions, 25 deletions
diff --git a/lib/libc/sys/stat.2 b/lib/libc/sys/stat.2
index f72dc0d0a117..a9e1a5c6e845 100644
--- a/lib/libc/sys/stat.2
+++ b/lib/libc/sys/stat.2
@@ -28,7 +28,7 @@
.\" @(#)stat.2 8.4 (Berkeley) 5/1/95
.\" $FreeBSD$
.\"
-.Dd November 11, 2018
+.Dd December 5, 2018
.Dt STAT 2
.Os
.Sh NAME
@@ -193,45 +193,53 @@ are:
.Bl -tag -width ".Va st_birthtim"
.It Va st_atim
Time when file data was last accessed.
-Changed by the
-.Xr mknod 2 ,
-.Xr utimes 2 ,
+Changed implicitly by syscalls such as
.Xr read 2
and
-.Xr readv 2
-system calls.
+.Xr readv 2 ,
+and explicitly by
+.Xr utimes 2 .
.It Va st_mtim
Time when file data was last modified.
-Changed by the
+Changed implicitly by syscalls such as
+.Xr truncate 2 ,
+.Xr write 2 ,
+and
+.Xr writev 2 ,
+and explicitly by
+.Xr utimes 2 .
+Also, any syscall which modifies directory content changes the
+.Va st_mtim
+for the affected directory.
+For instance,
+.Xr creat 2 ,
.Xr mkdir 2 ,
-.Xr mkfifo 2 ,
-.Xr mknod 2 ,
-.Xr utimes 2 ,
-.Xr write 2
+.Xr rename 2 ,
+.Xr link 2 ,
and
-.Xr writev 2
-system calls.
+.Xr unlink 2 .
.It Va st_ctim
Time when file status was last changed (inode data modification).
-Changed by the
+Changed implicitly by any syscall that affects file metadata, including
+.Va st_mtim ,
+such as
.Xr chflags 2 ,
.Xr chmod 2 ,
.Xr chown 2 ,
+.Xr truncate 2 ,
+.Xr utimes 2 ,
+and
+.Xr write 2 .
+Also, any syscall which modifies directory content changes the
+.Va st_ctim
+for the affected directory.
+For instance,
.Xr creat 2 ,
-.Xr link 2 ,
.Xr mkdir 2 ,
-.Xr mkfifo 2 ,
-.Xr mknod 2 ,
.Xr rename 2 ,
-.Xr rmdir 2 ,
-.Xr symlink 2 ,
-.Xr truncate 2 ,
-.Xr unlink 2 ,
-.Xr utimes 2 ,
-.Xr write 2
+.Xr link 2 ,
and
-.Xr writev 2
-system calls.
+.Xr unlink 2 .
.It Va st_birthtim
Time when the inode was created.
.El