Утилита fchmodat#
Утилита fchmodat является псевдонимом chmod (см. Утилита chmod), используется для изменения прав доступа к файлам, определяемым файловыми уникальными идентификаторами - дескрипторами - относительно каталога, на который ссылается данный дескриптор.
Синтаксис fchmodat:
#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.