ИМЯ
fpathconf, pathconf -
получают
параметры
настроек
для
файлов
ОБЗОР
#include <unistd.h>
long fpathconf(int fd, int name);
long pathconf(const char *path, int name);
ОПИСАНИЕ
fpathconf()
получает
значение
параметра
настроек name
для
открытого
дескриптора
файла fd.
pathconf()
получает
значение
параметра
настроек name
для файла с
именем path.
Соответствующие
макросы,
определённые
в <unistd.h>,
выдают
минимальные
значения;
если
приложение
собирается
использовать
изменяющиеся
значения,
то
необходимо
вызывать
функции fpathconf()
или pathconf(),
которые
выдают
более
гибкий
результат.
При
установке
значения name
в
следующие
константы
возвращаются
соответствующие
им
параметры
настройки:
- _PC_LINK_MAX
- Максимальное
количество
ссылок на
файл. Если
fd или path
указывают
на каталог,
то
значение
применяется
ко всему
каталогу.
Соответствует
макросу
_POSIX_LINK_MAX.
- _PC_MAX_CANON
- Максимальная
длина
отформатированной
строки
ввода,
причём, fd
или path
должны
указывать
на
терминал.
Соответствует
макросу
_POSIX_MAX_CANON.
- _PC_MAX_INPUT
- Максимальная
длина
строки
ввода,
причём, fd
или path
должны
указывать
на
терминал.
Соответствует
макросу
_POSIX_MAX_INPUT.
- _PC_NAME_MAX
- Максимальная
длина
имени
файла в
каталоге
path или fd,
которую
разрешено
использовать
процессу
при
создании
файла.
Соответствует
макросу
_POSIX_NAME_MAX.
- _PC_PATH_MAX
- Максимальная
длина
относительного
имени
файла, где
path или fd
являются
текущим
рабочим
каталогом.
Соответствует
макросу
_POSIX_PATH_MAX.
- _PC_PIPE_BUF
- Максимальное
количество
байт,
которое
может быть
атомарно
записано в
канал FIFO. Для
fpathconf()
значение fd
должно
указывать
на канал
или FIFO. Для fpathconf()
значение
path должно
указывать
на FIFO или
каталог; в
последнем
случае
возвращаемое
значение
соответствует
FIFO,
созданному
в этом
каталоге.
Соответствует
макросу
_POSIX_PIPE_BUF.
- _PC_CHOWN_RESTRICTED
- Возвращает
положительное
значение,
если
использование
chown(2) и fchown(2) для
изменения
идентификатора
пользователя
файла
ограничено
для
процесса с
соответствующими
правами и
изменение
идентификатора
группы
файла на
значение,
отличающееся
от
идентификатора
эффективной
группы
процесса
или его
вспомогательных
идентификаторов
групп,
ограничено
для
процесса с
соответствующими
правами.
Согласно POSIX.1,
эта
переменная
всегда
должна
быть
определена
со
значением
не равным -1.
Соответствует
макросу
_POSIX_CHOWN_RESTRICTED.
- Если fd или
path
указывают
на каталог,
то
возвращаемое
значение
относится
ко всем
файлам в
этом
каталоге.
- _PC_NO_TRUNC
- Возвращает
ненулевое
значение,
если при
доступе к
файловым
именам
длиннее,
чем _POSIX_NAME_MAX,
возникает
ошибка.
Соответствует
макросу
_POSIX_NO_TRUNC.
- _PC_VDISABLE
- Возвращает
ненулевое
значение,
если
обработка
спецсимволов
может быть
отключена,
при этом fd
или path
должны
указывать
на
терминал.
ВОЗВРАЩАЕМОЕ
ЗНАЧЕНИЕ
Возвращаемым
значением
этих
функций
может быть
одно из:
- При ошибке
возвращается
-1, а в errno
содержится
код ошибки
(например,
EINVAL
означает,
что
некорректно
name).
- Если name
соответствует
максимальному
или
минимальному
ограничителю
и этот
ограничитель
не
определён,
то
возвращается
-1 и errno не
изменяется
(чтобы
отличать
неопределённый
ограничитель
от ошибки,
сбросьте
errno в ноль
пере
вызовом, а
затем
проверьте,
что errno не
равно нулю,
если
возвращается
-1).
- Если name
соответствует
параметру,
то
возвращается
положительное
значение,
если
параметр
поддерживается
и -1, если
параметр
не
поддерживается.
- В
противном
случае
возвращается
текущее
значение
параметра
или
ограничителя.
Это
значение
будет не
более
ограничивающем
чем
соответствующее
значение,
которое
было
показано
приложению
в <unistd.h> или
<limits.h> при
компиляции.
ОШИБКИ
- EACCES
- (pathconf())
Запрещён
поиск в
одном из
каталогов
пути path.
- EBADF
- (fpathconf())
Значение fd
не
является
правильным
файловым
дескриптором.
- EINVAL
- Неверное
значение
name.
- EINVAL
- Реализация
не
поддерживает
связь name с
указанным
файлом.
- ELOOP
- (pathconf()) Во
время
определения
path
встретилось
слишком
много
символьных
ссылок.
- ENAMETOOLONG
- (pathconf())
Слишком
длинное
значение
аргумента
path.
- ENOENT
- (pathconf())
Компонент
пути path не
существует
или в path
указана
пустая
строка.
- ENOTDIR
- (pathconf())
Компонент
пути,
использованный
как
каталог в
path, в
действительности
таковым не
является.
АТРИБУТЫ
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
fpathconf(), pathconf() |
Безвредность
в нитях |
MT-Safe |
СООТВЕТСТВИЕ
СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008.
ЗАМЕЧАНИЯ
Файлы,
имена
которых
длиннее,
чем
значение,
возвращаемое
для name и
равны _PC_NAME_MAX,
могут
существовать
в заданном
каталоге.
Некоторые
возвращаемые
значения
могут быть
огромны;
соответствующие
им объекты
невозможно
разместить
в памяти.