Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       utime, utimes - изменить последнее время доступа и изменения к inode

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <utime.h>

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

       #include <sys/time.h>

       int utimes(const char *filename,
                 const struct timeval times[_Nullable 2]);

ОПИСАНИЕ

       Замечание:   современным   приложениям   лучше   использовать   интерфейсы,   описанные  в
       utimensat(2).

       The utime()  system call changes the access and modification times of the inode  specified
       by  filename  to  the  actime and modtime fields of times respectively.  The status change
       time (ctime) will be set to the current time, even if the other time stamps don't actually
       change.

       Если  значение  times  равно  NULL,  то  время доступа и изменения файла устанавливаются в
       текущее время.

       Изменение  временных  меток  разрешено  если:  процесс  имеет  соответствующие  права  или
       эффективный  пользовательский  идентификатор равен пользовательскому идентификатору файла,
       или значение times равно NULL и процесс имеет права на запись в файл.

       Структура utimbuf выглядит так:

           struct utimbuf {
               time_t actime;       /* время доступа */
               time_t modtime;      /* время изменения */
           };

       Системный вызов utime() позволяет указывать временные метки с точностью до 1 секунды.

       Системный вызов utimes() выполняет подобное  действие,  но  аргумент  times  указывает  на
       массив,  а  не  на  структуру.  Элементы  массива  представляют собой структуры timeval, с
       помощью которых можно указывать временные метки с точностью до 1 микросекунды .  Структура
       timeval:

           struct timeval {
               long tv_sec;        /* секунды */
               long tv_usec;       /* микросекунды */
           };

       В times[0] задаётся новое время доступа, а в times[1] новое время изменения. Если значение
       times равно NULL, то аналогично utime(), время доступа и изменения файла устанавливаются в
       текущее время.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On  success, zero is returned.  On error, -1 is returned, and errno is set to indicate the
       error.

ОШИБКИ

       EACCES Запрещён поиск в одном из каталогов пути path (см. также path_resolution(7)).

       EACCES Значение times равно NULL, эффективный пользовательский  идентификатор  вызывающего
              процесса  не  совпадает  с  владельцем файла, вызывающий не имеет права на запись в
              файл, и у вызывающего нет привилегий (Linux: не имеет мандата CAP_DAC_OVERRIDE  или
              CAP_FOWNER).

       ENOENT Файл filename не существует.

       EPERM  Значение   times   не   равно   NULL,  эффективный  пользовательский  идентификатор
              вызывающего процесса не совпадает с владельцем файла и у вызывающего нет привилегий
              (Linux: не имеет мандата CAP_FOWNER).

       EROFS  path располагается на файловой системе, доступной только для чтения.

СТАНДАРТЫ

       utime(): SVr4, POSIX.1-2001. В POSIX.1-2008 вызов utime() помечен как устаревший.

       utimes(): 4.3BSD, POSIX.1-2001.

ЗАМЕЧАНИЯ

       В  Linux  нельзя  изменять  временные метки у недосягаемых (immutable) файлов или задавать
       временные метки,  отличные  от  текущего  времени  для  файлов,  в  которые  можно  только
       дописывать.

СМ. ТАКЖЕ

       chattr(1),   touch(1),   futimesat(2),  stat(2),  utimensat(2),  futimens(3),  futimes(3),
       inode(7)

ПЕРЕВОД

       Русский   перевод   этой    страницы    руководства    был    сделан    Azamat    Hackimov
       <azamat.hackimov@gmail.com>,    Dmitriy    Ovchinnikov    <dmitriyxt5@gmail.com>,   Dmitry
       Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>,  Yuri  Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.