ACCESS(2)

НАЗВАНИЕ
access - проверка доступности файла

СИНТАКСИС


        int access (path, amode)

        char *path;

        int amode;

ОПИСАНИЕ
Аргумент path является указателем на маршрутное имя файла. Системный вызов access проверяет доступность указанного файла в соответствии с битным шаблоном, содержащимся в аргументе amode, используя реальные идентификаторы пользователя и группы вместо действующих идентификаторов. Шаблон задается как побитное ИЛИ следующих компонентов:

  • 04 Доступен на чтение.
  • 02 Доступен на запись.
  • 01 Доступен на выполнение (поиск).
  • 00 Файл существует.

Запрашиваемый доступ к файлу запрещен, если выполнено хотя бы одно из следующих условий:

[ENOTDIR]
Компонент маршрута не является каталогом.
[ENOENT]
Проверяется право на чтение, запись или выполнение (поиск) для пустого маршрутного имени.
[ENOENT]
Указанный файл не существует.
[EACCES]
Для компонента маршрута отсутствует право на поиск.
[EROFS]
Проверяется право на запись для файла, расположенного в файловой системе, доступной только на чтение.
[ETXTBSY]
Проверяется право на запись для файла, содержащего разделяемую секцию команд, которая в данный момент выполняется.
[EACCES]
Проверяется право на операции, запрещаемые режимом доступа к файлу.
[EFAULT]
Аргумент path указывает за пределы отведенного процессу адресного пространства.
[EINTR]
Во время выполнения системного вызова перехвачен сигнал.
[ENOLINK]
Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет.
[EMULTIHOP]
Компоненты path требуют многократного обращения к удаленным компьютерам.

Для владельца файла анализируются только биты режима доступа, задающие права владельца. Для членов группы файла, отличных от владельца, проверяются биты режима доступа, задающие права членов группы. Для всех остальных проверяется режим доступа прочих пользователей.

СМ. ТАКЖЕ
chmod(2), stat(2).

ДИАГНОСТИКА
Если запрашиваемый доступ разрешен, результат равен 0; в противном случае возвращается -1, а переменной errno присваивается код ошибки.