NAZWA
fpathconf, pathconf - pobranie konfiguracji dla plików
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:
* |
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. |
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).
ZGODNE Z
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)
O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.07 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/.
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek <alpha [AT] irc.pl>, Andrzej Krzysztofowicz <ankry [AT] green.pl> i Robert Luberda <robert [AT] 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 [AT] lists.net>.