| utime(2) | System Calls Manual | utime(2) |
utime, utimes - изменить последнее время доступа и изменения к inode
Стандартная библиотека языка C (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(), время доступа и изменения файла устанавливаются в текущее время.
При успешном выполнении возвращается 0. При ошибке возвращается -1, а в errno содержится код ошибки.
POSIX.1-2008.
В 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> и Kirill Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
| 2 мая 2024 г. | Справочные страницы Linux 6.9.1 |