summaryrefslogtreecommitdiffstats
path: root/man2/utime.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/utime.2')
-rw-r--r--man2/utime.2161
1 files changed, 161 insertions, 0 deletions
diff --git a/man2/utime.2 b/man2/utime.2
new file mode 100644
index 000000000..865f09ae7
--- /dev/null
+++ b/man2/utime.2
@@ -0,0 +1,161 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" Modified by Michael Haardt <michael@moria.de>
+.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
+.\" Modified 1995-06-10 by Andries Brouwer <aeb@cwi.nl>
+.\" Modified 2004-06-23 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\" Modified 2004-10-10 by Andries Brouwer <aeb@cwi.nl>
+.\"
+.TH UTIME 2 2004-10-10 "Linux 2.6.8" "Linux Programmer's Manual"
+.SH NAME
+utime, utimes \- change access and/or modification times of an inode
+.SH SYNOPSIS
+.nf
+.B #include <sys/types.h>
+.br
+.B #include <utime.h>
+.sp
+.BI "int utime(const char *" filename ", const struct utimbuf *" buf );
+.sp 2
+.B #include <sys/time.h>
+.sp
+.BI "int utimes(const char *" filename ", const struct timeval " tv [2]);
+.fi
+.SH DESCRIPTION
+.B utime
+changes the access and modification times of the inode specified by
+.I filename
+to the
+.IR actime " and " modtime
+fields of
+.I buf
+respectively.
+
+If
+.I buf
+is NULL, then the access and modification times of the file are set
+to the current time.
+
+Changing time stamps is permitted when: either
+the process has appropriate privileges (Linux: has the
+.B CAP_FOWNER
+capability), or the effective user ID equals the user ID
+of the file, or
+.I buf
+must is NULL and the process has write permission to the file.
+
+The
+.I utimbuf
+structure is:
+
+.RS
+.nf
+struct utimbuf {
+ time_t actime; /* access time */
+ time_t modtime; /* modification time */
+};
+.fi
+.RE
+
+The function
+.B utime
+allows specification of time stamps with a resolution of 1 second.
+The function
+.B utimes
+is similar, but allows a resolution of 1 microsecond.
+Here
+.IR tv [0]
+refers to access time, and
+.IR tv [1]
+to modification time.
+
+The
+.I timeval
+structure is:
+
+.RS
+.nf
+struct timeval {
+ long tv_sec; /* seconds */
+ long tv_usec; /* microseconds */
+};
+.fi
+.RE
+.SH "RETURN VALUE"
+On success, zero is returned. On error, \-1 is returned, and
+.I errno
+is set appropriately.
+.SH ERRORS
+.TP
+.B EACCES
+Search permission is denied for one of the directories in
+the path prefix of
+.I path
+(see also
+.BR path_resolution (2)),
+or
+.I buf
+is NULL and the process does not have permission to change the time stamps
+(see above).
+.TP
+.B ENOENT
+.I filename
+does not exist.
+.TP
+.B EPERM
+.I buf
+is not NULL and the process does not have permission to change the time stamps.
+.TP
+.B EROFS
+.I path
+resides on a read-only file system.
+.SH NOTES
+Linux does not allow changing the time stamps on an immutable file,
+or setting the time stamps to something other than the current time
+on an append-only file.
+
+In libc4 and libc5,
+.B utimes
+is just a wrapper for
+.B utime
+and hence does not allow a subsecond resolution.
+
+POSIX calls
+.B utimes
+legacy.
+.SH BUGS
+Linux is not careful to distinguish between the EACCES and EPERM error returns.
+On the other hand, POSIX 1003.1-2003 is buggy in its error description for
+.BR utimes .
+.SH "CONFORMING TO"
+.BR utime :
+SVr4, SVID, POSIX. SVr4 documents additional error conditions EFAULT,
+EINTR, ELOOP, EMULTIHOP, ENAMETOOLONG, ENOLINK, ENOLINK, ENOTDIR.
+.br
+.BR utimes :
+BSD 4.3
+.SH "SEE ALSO"
+.BR chattr (1),
+.BR stat (2)