Man Linux: Main Page and Category List

NAME

       utime - set file access and modification times

SYNOPSIS

       #include <utime.h>

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

DESCRIPTION

       The utime() function shall set the access and modification times of the
       file named by the path argument.

       If times is a null pointer, the access and modification  times  of  the
       file  shall  be  set  to the current time. The effective user ID of the
       process shall match the owner of the file, or  the  process  has  write
       permission to the file or has appropriate privileges, to use utime() in
       this manner.

       If times is not a null pointer, times shall be interpreted as a pointer
       to  a  utimbuf structure and the access and modification times shall be
       set to the values contained in the designated structure. Only a process
       with  the  effective  user  ID  equal  to  the user ID of the file or a
       process with appropriate privileges may use utime() this way.

       The utimbuf structure is defined in the <utime.h> header.  The times in
       the structure utimbuf are measured in seconds since the Epoch.

       Upon  successful  completion,  utime()  shall mark the time of the last
       file status change, st_ctime, to be updated; see <sys/stat.h>.

RETURN VALUE

       Upon successful completion, 0 shall be returned. Otherwise, -1 shall be
       returned  and  errno  shall  be set to indicate the error, and the file
       times shall not be affected.

ERRORS

       The utime() function shall fail if:

       EACCES Search permission is denied by a component of the  path  prefix;
              or  the  times argument is a null pointer and the effective user
              ID of the process does not match the  owner  of  the  file,  the
              process  does  not  have  write permission for the file, and the
              process does not have appropriate privileges.

       ELOOP  A loop exists in symbolic links encountered during resolution of
              the path argument.

       ENAMETOOLONG
              The length of the path argument exceeds {PATH_MAX} or a pathname
              component is longer than {NAME_MAX}.

       ENOENT A component of path does not name an existing file or path is an
              empty string.

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

       EPERM  The  times  argument  is  not  a  null  pointer  and the calling
              process’ effective user ID does not match the owner of the  file
              and   the   calling   process  does  not  have  the  appropriate
              privileges.

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

       The utime() function may fail if:

       ELOOP  More than {SYMLOOP_MAX} symbolic links were  encountered  during
              resolution of the path argument.

       ENAMETOOLONG
              As a result of encountering a symbolic link in resolution of the
              path argument, the length of  the  substituted  pathname  string
              exceeded {PATH_MAX}.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       The  actime structure member must be present so that an application may
       set it, even though an implementation may ignore it and not change  the
       access  time on the file. If an application intends to leave one of the
       times of a file unchanged while  changing  the  other,  it  should  use
       stat()  to  retrieve  the  file’s st_atime and st_mtime parameters, set
       actime and modtime in the buffer, and change one of them before  making
       the utime() call.

FUTURE DIRECTIONS

       None.

SEE ALSO

       The  Base  Definitions  volume  of  IEEE Std 1003.1-2001, <sys/stat.h>,
       <utime.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  Issue  6,  Copyright  (C) 2001-2003 by the Institute of
       Electrical and Electronics Engineers, Inc and The Open  Group.  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.opengroup.org/unix/online.html .