fpathconf, pathconf - pobranie konfiguracji dla plików
#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:
- W razie wystąpienia błędu zwracane jest -1 i
ustawiana jest odpowiednia wartość zmiennej errno (na
przykład na EINVAL wskazujące, że name
jest niepoprawna).
- 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.
Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux
man-pages. Opis projektu, informacje dotyczące
zgłaszania błędów oraz najnowszą
wersję oryginału można znaleźć pod
adresem https://www.kernel.org/doc/man-pages/.
Autorami polskiego tłumaczenia niniejszej strony
podręcznika są: Adam Byrtek <alpha@irc.pl>, Andrzej
Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Robert Luberda
<robert@debian.org>
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
manpages-pl-list@lists.sourceforge.net.