Системный вызов fchownat()#

Описание​#

Системный вызов fchownat() является псевдонимом chown (см. Утилита chown и Системный вызов fchown()), используется для изменения владельца и группы файла относительно файлового дескриптора каталога.

Синтаксис системного вызова:

#include <unistd.h>

int fchownat(int dirfd, const char *pathname, uid_t owner, gid_t group, int flags);

Где:

  • #include <unistd.h> - включение заголовочного файла, содержащего определения используемых функций и констант;

  • int - целочисленный тип данных;

  • dirfd - файловый дескриптор каталога;

  • const char *pathname - путь и имя файла/каталога;

  • uid_t owner - новый владелец файла;

  • gid_t group - новая группа файла;

  • flags - флаги.

Если путь, указанный в pathname, является относительным, то он интерпретируется относительно каталога, на который ссылается файловый дескриптор dirfd (а не относительно текущего рабочего каталога, как в chown).

Если pathname является относительным, а dirfd - это специальное значение AT_FDCWD (константа текущего рабочего каталога), то pathname интерпретируется относительно текущего рабочего каталога вызывающего процесса.

Если pathname является абсолютным, то dirfd игнорируется.

Флаги могут быть либо равны 0, либо принимать значения:

  • AT_EMPTY_PATH - если путь является пустой строкой, то операция будет выполнена с файлом, на который ссылается dirfd; в данном случае dirfd может ссылаться на любой тип файла, а не только на каталог; если dirfd равно AT_FDCWD, то вызов выполняется в текущем рабочем каталоге;

  • AT_SYMLINK_NOFOLLOW - если pathname является символьной ссылкой, то используется сама ссылка без перехода по ней.

Дополнительная информация#

Дополнительную информацию можно получить, выполнив команду:

man 3 fchownat