Системный вызов fchmodat()#
Описание#
Системный вызов fchmodat() - эквивалент системного вызова chmod(), используется для изменения прав доступа к файлам, определяемым файловыми уникальными идентификаторами — дескрипторами — относительно каталога, на который ссылается данный дескриптор.
Синтаксис системного вызова:
#define _ATFILE_SOURCE
#include <fcntl.h> /* Definition of AT_* constants */
#include <sys/stat.h>
int fchmodat(int dirfd, const char *pathname, mode_t mode, int flags);
Где:
#define...- определение директивы, необходимой для доступа к некоторым функциям и константам;#include <fcntl.h>...и#include <sys/stat.h>- включение заголовочных файлов, содержащих определения используемых функций и констант;int- целочисленный тип данных;dirfd- файловый дескриптор каталога;const char *pathname- путь и имя файла/каталога;mode_t mode- режим прав доступа;flags- флаги.
Если путь в pathname относительный, то он интерпретируется относительно каталога, на который ссылается файловый дескриптор dirfd (а не относительно текущего рабочего каталога, как в chmod()).
Если pathname относительный, а dirfd - это специальное значение AT_FDCWD (константа текущего рабочего каталога), то pathname интерпретируется относительно текущего рабочего каталога вызывающего процесса.
Если pathname абсолютный, то dirfd игнорируется.
Флаги могут быть либо равны 0, либо быть AT_SYMLINK_NOFOLLOW - если pathname символьная ссылка, то используется сама ссылка без перехода по ней.
Дополнительная информация#
Дополнительную информацию можно получить, выполнив команду:
man fchmodat