utime(2)                                                              utime(2)


NAME
     utime - set file access and modification times

SYNOPSIS
     #include <sys/types.h>
     #include <utime.h>

     int utime(const char *path, const struct utimbuf *times);

DESCRIPTION
     path points to a path name naming a file.  utime sets the access and
     modification times of the named file.

     If times is NULL, the access and modification times of the file are set
     to the current time.  A process must be the owner of the file or have
     write permission to use utime in this manner.

     If times is not NULL, times is interpreted as a pointer to a utimbuf
     structure (defined in utime.h) and the access and modification times are
     set to the values contained in the designated structure.  Only the owner
     of the file may use utime this way.

     The times in the following structure are measured in seconds since
     00:00:00 UTC, Jan. 1, 1970.

          struct    utimbuf        {
               time_t      actime; /* access time */
               time_t      modtime;/* modification time */
          };

     utime also causes the time of the last file status change (st_ctime) to
     be updated.

     utime will fail if one or more of the following are true:

     EACCES              Search permission is denied by a component of the
                         path prefix.

     EACCES              Write permission on the file named by path is denied.

     EACCES              The effective user ID is not the owner of the file,
                         times is NULL, and write access is denied.

     EFAULT              times is not NULL and points outside the process's
                         allocated address space.

     EFAULT              path points outside the process's allocated address
                         space.

     EINTR               A signal was caught during the utime system call.


     ELOOP               Too many symbolic links were encountered in
                         translating path.

     EMULTIHOP           Components of path require hopping to multiple remote
                         machines and the file system does not allow it.

     ENAMETOOLONG        The length of the path argument exceeds {PATH_MAX},
                         or the length of a path component exceeds {NAME_MAX}
                         while _POSIX_NO_TRUNC is in effect.

     ENOENT              The named file does not exist or is a null pathname.

     ENOLINK             path points to a remote machine and the link to that
                         machine is no longer active.

     ENOTDIR             A component of the path prefix is not a directory.

     EPERM               The calling process does not have the super-user
                         privilege, the effective user ID is not the owner of
                         the file, and times is not NULL.

     EPERM               The calling process does not have the super-user
                         privilege, the effective user ID is not the owner of
                         the file, times is NULL, and write permission on the
                         file named by path is denied.

     EROFS               The file system containing the file is mounted read-
                         only.

     EROFS               The current file system level range does not envelop
                         the level of the file named by path, and the calling
                         process does not have the super-user privilege.

     ENOSYS              When the named file cannot have its time reset.  The
                         file is on a file system that doesn't have this
                         operation.  Example, the /dev/fd/0 file is on a file
                         system that doesn't allow the time to be reset.

SEE ALSO
     stat(2), utimets(2)

DIAGNOSTICS
     Upon successful completion, a value of 0 is returned.  Otherwise, a value
     of -1 is returned and errno is set to indicate the error.


                                                                        Page 2