fpathconf(3) | Library Functions Manual | fpathconf(3) |
NAZWA
fpathconf, pathconf - pobiera konfigurację 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:
- •
- W razie wystąpienia błędu zwracane jest -1 i ustawiane errno wskazując błąd (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).
Interfejs | Atrybut | Wartość |
fpathconf(), pathconf() | Bezpieczeństwo wątkowe | MT-bezpieczne |
STANDARDY
POSIX.1-2008.
HISTORIA
POSIX.1-2001.
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
TŁUMACZENIE
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 listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
2 maja 2024 r. | Linux man-pages 6.8 |