utimes()

Установить времена доступа и модификации файла

Прототип:

#include <sys/time.h>
int utimes( const char *__path,
const struct timeval *__times );

Аргументы:

__path
Путевое имя файла, для которого необходимо установить времена доступа и модификации (изменения).
__times
NULL, или массив типа struct timeval:

Библиотека:

libc

Описание:

Функция utimes() устанавливает времена доступа и модификации файла с путевым именем __path в значения, указанные в параметре __times. Данная функция позволяет указывать времена с точностью до микросекунд.

Время в структуре struct timeval определяется в секундах и микросекундах от т.н. Эпохи Unix (с 00:00:00 1-го января 1970 года по UTC). При этом возможно округление до ближайшей секунды.

В случае, если значение параметра __times равно NULL времена доступа и модификации файла устанавливаются равными текущему времени. Действующий (эффективный) идентификатор пользователя процесса (user ID) должен совпадать с идентификатором владельца файла или иметь права на запись в этот файл. После завершения функция utimes() помечает время последнего изменения состояний файла st_ctime как обновленное.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EACCES
Отсутствует разрешение на поиск компонента в префиксе пути, либо параметр __times равен NULL и эффективный user ID не соответствует владельцу файла или нет разрешения на запись в файл.
EFAULT
Параметры __path или __times указывают на некорректный адрес.
EINTR
В ходе выполнения функции utimes() был получен сигнал.
EINVAL
Количество микросекунд, определенное в одном или в обоих параметрах struct timeval равно или превышает 1,000,000 или менее 0.
EIO
Произошла ошибка ввода-вывода (I/O error) при чтении или записи в файловую систему.
ELOOP
При обработке путевого имени __path найдено слишком большое количество символьных ссылок.
EMULTIHOP
Компоненты __path требуют перехода на несколько удаленных машин, что не позволяет сделать файловая система.
ENAMETOOLONG
Длина параметра __path превышает значение PATH_MAX, или длина компонента путевого имени превышает значение NAME_MAX.
ENOLINK
Параметр __path указывает на удаленную машину и ссылка на эту машину больше не активна.
ENOENT
Компонент в пути __path не является существующим именем файла, или __path является пустой строкой.
ENOTDIR
Компонент путевого префикса не является каталогом.
EPERM
Параметр __times не равен NULL, а эффективный user ID имеет доступ на запись в файл, но не соответствует владельцу файла, или вызывающий процесс не имеет соответствующих привилегий.
EROFS
Файловая система, в которой находится файл, доступна только по чтению (read-only ФС).
ENAMETOOLONG
При обработке путевого имени символической ссылки появился промежуточный результат (компонент пути), длина которого превышает PATH_MAX.

Классификация:

POSIX 1003.1 X/Open Systems Interfaces Extension

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

struct timeval, stat()




Предыдущий раздел: Описание API системной библиотеки