Записать время модификации файла или каталога
#include <sys/types.h>#include <utime.h>int utime( const char *path,const struct utimbuf *times );
NULL
, или указатель на структуру struct utimbuf, в которой будет сохранено время модификации.libc
Функция utime() записывает время модификации файла или каталога, указанного в параметре path.
Если параметр times равен NULL
, времена доступа и модификации файла или каталога будут установлены в значение текущего времени. Действующий (эффективный) идентификатор пользователя процесса (user ID) должен совпадать с идентификатором владельца файла или иметь права на запись в данный файл или каталог, или соответствующие привилегии для использования функции utime().
Если параметр times не равен NULL
, то он интерпретируется как указатель на структуру struct utimbuf и времена доступа и модификации файла или каталога будут установлены в соответствии со значениями элементов этой структуры. Только владельцу файла или каталога и процессам с соответствующими привилегиями разрешено использовать функцию utime() подобным образом. Времена доступа и модификации берутся из полей ctime и modtime структуры struct utimbuf.
NULL
и эффективный user ID не соответствует владельцу файла, или нет прав на запись. PATH_MAX
, или длина компонента путевого имени превышает значение NAME_MAX
.. NULL
, а эффективный user ID имеет доступ на запись в файл, но не соответствует владельцу файла, или вызывающий процесс не имеет соответствующих привилегий. #include <stdio.h>#include <stdlib.h>#include <utime.h>int main( int argc, char *argv[] ){if ( (utime( argv[1], NULL ) != 0) && (argc > 1) ){printf( "Невозможно установить время для %s\n", argv[1] );}return (EXIT_SUCCESS);}
POSIX 1003.1
struct utimbuf, errno, futime()
Предыдущий раздел: Описание API системной библиотеки