fpathconf, pathconf - pobranie konfiguracji dla plików
Standardowa biblioteka C (
libc,
-lc)
#include <unistd.h>
long fpathconf(int fd, int name);
long pathconf(const char *path, int name);
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.
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.
- 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.
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 |
POSIX.1-2001, POSIX.1-2008.
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.
getconf(1),
open(2),
statfs(2),
confstr(3),
sysconf(3)
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]