fpathconf, pathconf - obține valori de configurare pentru
fișiere
Biblioteca C standard (libc, -lc)
#include <unistd.h>
long fpathconf(int fd, int name);
long pathconf(const char *path, int name);
fpathconf() obține o valoare pentru opțiunea
de configurare name pentru descriptorul de fișier deschis
fd.
pathconf() obține o valoare pentru opțiunea
de configurare name pentru numele de fișier path.
Macro-urile corespunzătoare definite în
<unistd.h> sunt valori minime; dacă o aplicație
dorește să profite de valori care se pot schimba, se poate
apela la fpathconf() sau pathconf(), care pot da rezultate mai
liberale.
Dacă se stabilește name egal cu una dintre
constantele următoare, se afișează următoarele
opțiuni de configurare:
- _PC_LINK_MAX
- Numărul maxim de legături către fișier.
Dacă fd sau path se referă la un director,
atunci valoarea se aplică întregului director. Macro-ul
corespunzător este _POSIX_LINK_MAX.
- _PC_MAX_CANON
- Lungimea maximă a unei linii de intrare formatată, unde
fd sau path trebuie să se refere la un terminal.
Macro-ul corespunzător este _POSIX_MAX_CANON.
- _PC_MAX_INPUT
- Lungimea maximă a unei linii de intrare, unde fd sau
path trebuie să se refere la un terminal. Macro-ul
corespunzător este _POSIX_MAX_INPUT.
- _PC_NAME_MAX
- Lungimea maximă a unui nume de fișier din directorul
path sau fd pe care procesul este autorizat să o
creeze. Macro-ul corespunzător este _POSIX_NAME_MAX.
- _PC_PATH_MAX
- Lungimea maximă a unui nume de rută relativă atunci
când path sau fd este directorul curent de lucru.
Macro-ul corespunzător este _POSIX_PATH_MAX.
- _PC_PIPE_BUF
- Numărul maxim de octeți care pot fi scriși atomic
într-o conductă sau într-o FIFO (conductă cu
nume). Pentru fpathconf(), fd trebuie să se refere la
o conductă sau la o FIFO. Pentru fpathconf(), path
trebuie să se refere la o FIFO sau la un director; în
ultimul caz, valoarea returnată corespunde FIFO-urilor create
în directorul respectiv. Macro-ul corespunzător este
_POSIX_PIPE_BUF.
- _PC_CHOWN_RESTRICTED
- Aceasta returnează o valoare pozitivă dacă utilizarea
chown(2) și fchown(2) pentru schimbarea ID-ului de
utilizator al unui fișier este limitată la un proces cu
privilegii adecvate, iar schimbarea ID-ului de grup al unui fișier
la o altă valoare decât ID-ul de grup efectiv al procesului
sau unul dintre ID-urile sale de grup suplimentare este limitată la
un proces cu privilegii adecvate. În conformitate cu POSIX.1,
această variabilă trebuie definită întotdeauna
cu o valoare diferită de -1. Macro-ul corespunzător este
_POSIX_CHOWN_RESTRICTED.
- Dacă fd sau path se referă la un director,
atunci valoarea returnată se aplică tuturor
fișierelor din directorul respectiv.
- _PC_NO_TRUNC
- Aceasta returnează nonzero dacă accesarea unor nume de
fișiere mai lungi decât _POSIX_NAME_MAX
generează o eroare. Macro-ul corespunzător este
_POSIX_NO_TRUNC.
- _PC_VDISABLE
- Aceasta returnează nonzero dacă prelucrarea caracterelor
speciale poate fi dezactivată, unde fd sau path
trebuie să se refere la un terminal.
Valoarea de returnare a acestor funcții este una dintre
următoarele:
- •
- În caz de eroare, se returnează -1, iar errno este
configurată pentru a indica eroarea (de exemplu, EINVAL,
indicând că name nu este valid).
- •
- Dacă name corespunde unei limite maxime sau minime, iar
limita respectivă este nedeterminată, se returnează
-1 și errno nu este modificată. Pentru a distinge o
limită nedeterminată de o eroare, stabiliți
errno la zero înainte de apel și apoi
verificați dacă errno este diferită de zero
atunci când este returnat -1.
- •
- Dacă name corespunde unei opțiuni, se
returnează o valoare pozitivă dacă opțiunea
este acceptată, iar -1 dacă opțiunea nu este
acceptată.
- •
- În caz contrar, este returnată valoarea curentă a
opțiunii sau a limitei. Această valoare nu va fi mai
restrictivă decât valoarea corespunzătoare care a
fost descrisă aplicației în <unistd.h>
sau <limits.h> atunci când aplicația a fost
compilată.
- EACCES
- (pathconf()) Permisiunea de căutare este refuzată
pentru una dintre directoarele din prefixul rutei path.
- EBADF
- (fpathconf()) fd nu este un descriptor de fișier
valid.
- EINVAL
- name nu este valid.
- EINVAL
- Implementarea nu acceptă o asociere a name cu
fișierul specificat.
- ELOOP
- (pathconf()) Prea multe legături simbolice au fost
întâlnite în timpul rezolvării
path.
- ENAMETOOLONG
- (pathconf()) ruta path este prea lungă.
- ENOENT
- (pathconf()) O componentă a path nu există sau
path este un șir gol.
- ENOTDIR
- (pathconf()) O componentă utilizată ca director
în path nu este de fapt un director.
Pentru o explicație a termenilor folosiți în
această secțiune, a se vedea attributes(7).
| Interfață |
Atribut |
Valoare |
| fpathconf(), pathconf() |
Siguranța firelor |
MT-Safe |
În directorul dat pot exista fișiere cu nume mai
lungi decât valoarea returnată pentru name egală
cu _PC_NAME_MAX.
Unele valori returnate pot fi uriașe; acestea nu sunt
potrivite pentru alocarea de memorie.
Traducerea în limba română a acestui manual a
fost făcută de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită;
citiți
Licența
publică generală GNU Versiunea 3 sau o versiune
ulterioară cu privire la condiții privind drepturile de autor.
NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea
acestui manual, vă rugăm să trimiteți un e-mail
la
translation-team-ro@lists.sourceforge.net.