NAZWA

fpathconf, pathconf - pobranie konfiguracji dla plików

BIBLIOTEKA

Standardowa biblioteka C ( libc, -lc)

SKŁADNIA

#include <unistd.h>
long fpathconf(int fd, int name);
long pathconf(const char *path, int name);

OPIS

Funkcja fpathconf() pobiera wartość opcji konfiguracyjnej name dla otwartego deskryptora pliku fd.
Funkcja pathconf() pobiera wartość opcji konfiguracyjnej name dla pliku o nazwie path.
Odpowiednie makra zdefiniowane w <unistd.h> są wartościami minimalnymi. Jeśli aplikacja chce korzystać z wartości, które mogą się zmieniać, to może wywołać fpathconf() lub pathconf(), które zwracają bardziej liberalne wyniki.
Przekazanie w argumencie name jednej z poniższych wartości zwraca następujące opcje konfiguracji:
_PC_LINK_MAX
Maksymalna liczba dowiązań do pliku. Jeśli fd lub path odnoszą się do katalogu, to wartość dotyczy całego katalogu. Odpowiadające temu makro to _POSIX_LINK_MAX.
_PC_MAX_CANON
Maksymalna długość sformatowanej linii wejściowej, przy czym fd lub path musi odnosić się do terminala. Odpowiadające temu makro to _POSIX_MAX_CANON.
_PC_MAX_INPUT
Maksymalna długość linii wejściowej, przy czym fd lub path musi odnosić się do terminala. Odpowiadające temu makro to _POSIX_MAX_INPUT.
_PC_NAME_MAX
Maksymalna długość nazwy pliku w katalogu path lub fd, jaką proces może utworzyć. Odpowiadające temu makro to _POSIX_NAME_MAX.
_PC_PATH_MAX
Maksymalna długość względnej ścieżki, gdy path lub fd jest katalogiem bieżącym. Odpowiadające temu makro to _POSIX_PATH_MAX.
_PC_PIPE_BUF
Maksymalna liczba bajtów, które można niepodzielnie (atomicznie) zapisać do potoku lub kolejki FIFO. W przypadku fpathconf() argument fd powinien odnosić się do potoku lub kolejki FIFO. Dla fpathconf(), argument path powinien odnosić się do kolejki FIFO lub katalogu; w tym drugim przypadku wartość zwracana jest odpowiednia dla kolejek FIFO tworzonych w tym katalogu. Odpowiadające temu makro to _POSIX_PIPE_BUF.
_PC_CHOWN_RESTRICTED
Zwraca wartość dodatnią, jeśli użycie chown(2) i fchown(2), w celu zmiany identyfikatora właściciela pliku albo w celu zmienienia identyfikatora grupy pliku na wartość inną niż efektywny identyfikator grupy procesu lub jeden z dodatkowych identyfikatorów grup, jest ograniczone do procesu mającego odpowiednie uprawnienia. Zgodnie z POSIX.1 wartość ta powinna zawsze być różna od -1. Odpowiadające temu makro to _POSIX_CHOWN_RESTRICTED.
Jeśli fd lub path odnoszą się do katalogu, to wartość zwracana dotyczy to wszystkich plików w tym katalogu.
_PC_NO_TRUNC
Zwraca wartość niezerową, jeśli dostęp do plików o nazwach dłuższych od _POSIX_NAME_MAX powoduje błąd. Odpowiadające temu makro to _POSIX_NO_TRUNC.
_PC_VDISABLE
Zwraca wartość niezerową, jeśli przetwarzanie znaków specjalnych może być wyłączone, przy czym fd lub path muszą odnosić się do terminala.

WARTOŚĆ ZWRACANA

Funkcje te zwracają jedną z następujących wartości:
On error, -1 is returned and errno is set to indicate the error (for example, EINVAL, indicating that name is invalid).
Jeśli name odpowiada jakiemuś ograniczeniu typu maksimum lub minimum, ale nie można określić wartości tego ograniczenia, to zwracane jest -1 bez zmieniana wartości errno. (W celu odróżnienia nieokreślalnego ograniczenia od innego błędu, należy ustawić errno na zero przed wywołaniem tej funcji, i następnie sprawdzić, czy errno jest niezerowe, jeśli funkcja zwróci wartość -1).
Jeśli name odpowiada jakiejś nazwie opcji, to zwracana jest wartość dodatnia, gdy ta opcja jest wspierana, w przeciwnym wypadku zwracane jest -1.
W przeciwnym wypadku zwracana jest bieżąca wartość opcji lub ograniczenia. Wartość ta nie będzie bardziej restrykcyjna niż odpowiednia wartość dostępna w pliku <unistd.h> lub <limits.h> w czasie kompilowania aplikacji.

BŁĘDY

EACCES
(pathconf()) Brak uprawnień do przeszukiwania jednego z katalogów w ścieżce zaczynającej path.
EBADF
(fpathconf()) fd nie jest prawidłowym deskryptorem pliku.
EINVAL
name jest niepoprawne.
EINVAL
Ta implementacja nie wspiera skojarzenia name z podanym plikiem.
ELOOP
(pathconf()) Podczas rozwiązywania path napotkano zbyt wiele dowiązań symbolicznych.
ENAMETOOLONG
(pathconf()) path jest za długa.
ENOENT
(pathconf()) Składnik ścieżki path nie istnieje lub path jest pustym łańcuchem znaków.
ENOTDIR
(pathconf()) Jeden ze składników ścieżki path nie jest katalogiem.

ATRYBUTY

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs Atrybut Wartość
fpathconf(), pathconf() Bezpieczeństwo wątkowe MT-Safe
 

STANDARDY

POSIX.1-2001, POSIX.1-2008.

UWAGI

W danym katalogu mogą istnieć pliki o nazwach dłuższych niż wartość zwrócona dla name równego _PC_NAME_MAX.
Niektóre ze zwracanych wartości mogą być olbrzymie, więc nie nadają się do alokowania pamięci.

ZOBACZ TAKŻE

getconf(1), open(2), statfs(2), confstr(3), sysconf(3)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek <[email protected]>, Andrzej Krzysztofowicz <[email protected]> i Robert Luberda <[email protected]>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej [email protected]

Recommended readings

Pages related to pathconf you should read also: