Scroll to navigation

FPATHCONF(3) Podręcznik programisty Linuksa FPATHCONF(3)

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).
Interfejs Atrybut Wartość
fpathconf(), pathconf() Bezpieczeństwo wątkowe MT-Safe

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.04 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@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.

13 lipca 2017 r. GNU