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
This commit is contained in:
Alan Somers 2018-12-05 17:28:40 +00:00
parent 9d2877fc3d
commit 006678fd05
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=341598

View File

@ -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
.Xr mkdir 2 ,
.Xr mkfifo 2 ,
.Xr mknod 2 ,
.Xr utimes 2 ,
.Xr write 2
Changed implicitly by syscalls such as
.Xr truncate 2 ,
.Xr write 2 ,
and
.Xr writev 2
system calls.
.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 rename 2 ,
.Xr link 2 ,
and
.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 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
and
.Xr writev 2
system calls.
.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 mkdir 2 ,
.Xr rename 2 ,
.Xr link 2 ,
and
.Xr unlink 2 .
.It Va st_birthtim
Time when the inode was created.
.El