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:

*   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.

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.13 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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.