sysconf(3) | Library Functions Manual | sysconf(3) |
NUME
sysconf - obține informațiile de configurare în timpul rulării
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <unistd.h>
long sysconf(int name);
DESCRIERE
POSIX permite unei aplicații să testeze în momentul compilării sau al rulării dacă anumite opțiuni sunt acceptate sau care este valoarea anumitor constante sau limite configurabile.
În momentul compilării, acest lucru se realizează prin includerea <unistd.h> și/sau <limits.h> și testarea valorii anumitor macroinstrucțiuni.
În timpul execuției, se pot solicita valori numerice utilizând funcția actuală sysconf(). Se pot solicita valori numerice care pot depinde de sistemul de fișiere în care se află un fișier folosind fpathconf(3) și pathconf(3). Se pot solicita valori de tip șir de caractere utilizând confstr(3).
Valorile obținute din aceste funcții sunt constante de configurare a sistemului. Acestea nu se modifică în timpul duratei de viață a unui proces.
Pentru opțiuni, de obicei, există o constantă _POSIX_FOO care poate fi definită în <unistd.h>. Dacă este nedefinită, trebuie întrebată în momentul rulării. Dacă este definită la -1, atunci opțiunea nu este acceptată. Dacă este definită la 0, atunci există funcții și antete relevante, dar trebuie să se întrebe în momentul rulării ce grad de suport este disponibil. Dacă este definită la o valoare diferită de -1 sau 0, atunci opțiunea este acceptată. De obicei, valoarea (cum ar fi 200112L) indică anul și luna revizuirii POSIX care descrie opțiunea. glibc utilizează valoarea 1 pentru a indica suportul atât timp cât revizuirea POSIX nu a fost încă publicată. Argumentul sysconf() va fi _SC_FOO. Pentru o listă de opțiuni, consultați posixoptions(7).
Pentru variabile sau limite, de obicei, există o constantă _FOO, poate definită în <limits.h>, sau _POSIX_FOO, poate definită în <unistd.h>. Constanta nu va fi definită dacă limita este nespecificată. Dacă constanta este definită, aceasta oferă o valoare garantată, iar o valoare mai mare ar putea fi de fapt acceptată. Dacă o aplicație dorește să profite de valorile care se pot schimba între sisteme, se poate face un apel la sysconf(). Argumentul sysconf() va fi _SC_FOO.
Variabile POSIX.1
Oferim numele variabilei, numele argumentului sysconf() utilizat pentru a afla valoarea acesteia și o scurtă descriere.
Mai întâi, valorile compatibile POSIX.1.
- ARG_MAX - _SC_ARG_MAX
- Lungimea maximă a argumentelor pentru familia de funcții exec(3). Nu trebuie să fie mai mică decât _POSIX_ARG_MAX (4096).
- CHILD_MAX - _SC_CHILD_MAX
- Numărul maxim de procese simultane per ID utilizator. Nu trebuie să fie mai mic decât _POSIX_CHILD_MAX (25).
- HOST_NAME_MAX - _SC_HOST_NAME_MAX
- Lungimea maximă a unui nume de gazdă, fără a include octetul nul final, așa cum este returnat de gethostname(2). Nu trebuie să fie mai mică decât _POSIX_HOST_NAME_MAX (255).
- LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX
- Lungimea maximă a unui nume de autentificare, inclusiv octetul nul de terminare. Nu trebuie să fie mai mică decât _POSIX_LOGIN_NAME_MAX (9).
- NGROUPS_MAX - _SC_NGROUPS_MAX
- Numărul maxim de ID-uri de grup suplimentare.
- clock ticks - _SC_CLK_TCK
- Numărul de ticuri de ceas pe secundă. Variabila corespunzătoare este depășită. Aceasta se numește desigur CLK_TCK. (Notă: macroinstrucțiunea CLOCKS_PER_SEC nu dă informații: trebuie să fie egală cu 1000000).
- OPEN_MAX - _SC_OPEN_MAX
- Numărul maxim de fișiere pe care un proces le poate avea deschise în orice moment. Nu trebuie să fie mai mic decât _POSIX_OPEN_MAX (20).
- PAGESIZE - _SC_PAGESIZE
- Dimensiunea unei pagini în octeți Nu trebuie să fie mai mică de 1.
- PAGE_SIZE - _SC_PAGE_SIZE
- Un sinonim pentru PAGESIZE/_SC_PAGESIZE. Atât PAGESIZE, cât și PAGE_SIZE sunt specificate în POSIX.
- RE_DUP_MAX - _SC_RE_DUP_MAX
- Numărul de apariții repetate ale unui BRE permise de regexec(3) și regcomp(3). Nu trebuie să fie mai mic decât _POSIX2_RE_DUP_MAX (255).
- STREAM_MAX - _SC_STREAM_MAX
- Numărul maxim de fluxuri pe care un proces le poate avea deschise în orice moment. Dacă este definit, are aceeași valoare ca macroinstrucțiunea standard C FOPEN_MAX. Nu trebuie să fie mai mic decât _POSIX_STREAM_MAX (8).
- SYMLOOP_MAX - _SC_SYMLOOP_MAX
- Numărul maxim de legături simbolice observate într-un nume de rută înainte ca rezoluția să returneze ELOOP. Nu trebuie să fie mai mic decât _POSIX_SYMLOOP_MAX (8).
- TTY_NAME_MAX - _SC_TTY_NAME_MAX
- Lungimea maximă a numelui dispozitivului de terminal, inclusiv octetul nul de terminare. Nu trebuie să fie mai mică decât _POSIX_TTY_NAME_MAX (9).
- TZNAME_MAX - _SC_TZNAME_MAX
- Numărul maxim de octeți dintr-un nume de fus orar. Nu trebuie să fie mai mic decât _POSIX_TZNAME_MAX (6).
- _POSIX_VERSION - _SC_VERSION
- Indică anul și luna în care a fost aprobat standardul POSIX.1 în formatul AAAALLL; valoarea 199009L indică revizuirea din septembrie 1990.
Variabile POSIX.2
Urmează valorile POSIX.2, care oferă limite pentru utilități.
- BC_BASE_MAX - _SC_BC_BASE_MAX
- Indică valoarea maximă obase acceptată de utilitatea bc(1).
- BC_DIM_MAX - _SC_BC_DIM_MAX
- Indică valoarea maximă a elementelor permise într- o matrice de către bc(1).
- BC_SCALE_MAX - _SC_BC_SCALE_MAX
- Indică valoarea maximă scale permisă de bc(1).
- BC_STRING_MAX - _SC_BC_STRING_MAX
- Indică lungimea maximă a unui șir de caractere acceptat de bc(1).
- COLL_WEIGHTS_MAX - _SC_COLL_WEIGHTS_MAX
- Indică numărul maxim de ponderări care pot fi atribuite unei intrări a cuvântului-cheie LC_COLLATE order în fișierul de definire a parametrilor regionali.
- EXPR_NEST_MAX - _SC_EXPR_NEST_MAX
- Este numărul maxim de expresii care pot fi imbricate între paranteze de către expr(1).
- LINE_MAX - _SC_LINE_MAX
- Lungimea maximă a liniei de intrare a unui utilitar, fie de la intrarea standard, fie dintr-un fișier. Aceasta include spațiul pentru o linie nouă finală.
- RE_DUP_MAX - _SC_RE_DUP_MAX
- Numărul maxim de apariții repetate ale unei expresii regulate atunci când se utilizează notația de interval \{m,n\}.
- POSIX2_VERSION - _SC_2_VERSION
- Indică versiunea standardului POSIX.2 în formatul AAAALLL.
- POSIX2_C_DEV - _SC_2_C_DEV
- Indică dacă sunt acceptate facilitățile de dezvoltare ale limbajului POSIX.2 C.
- POSIX2_FORT_DEV - _SC_2_FORT_DEV
- Indică dacă sunt acceptate utilitarele de dezvoltare FORTRAN POSIX.2.
- POSIX2_FORT_RUN - _SC_2_FORT_RUN
- Indică dacă sunt acceptate utilitarele de execuție POSIX.2 FORTRAN.
- _POSIX2_LOCALEDEF - _SC_2_LOCALEDEF
- Indică dacă este acceptată crearea de configurații regionale POSIX.2 prin localedef(1).
- POSIX2_SW_DEV - _SC_2_SW_DEV
- Indică dacă este acceptată opțiunea POSIX.2 pentru utilitare de dezvoltare software.
Aceste valori există, de asemenea, dar pot să nu fie standard.
-
- _SC_PHYS_PAGES - Numărul de pagini de memorie fizică Rețineți că este posibil ca produsul dintre această valoare și valoarea lui _SC_PAGESIZE să depășească limita.
-
- _SC_AVPHYS_PAGES - Numărul de pagini de memorie fizică disponibile în prezent.
-
- _SC_NPROCESSORS_CONF - Numărul de procesoare configurate. A se vedea și get_nprocs_conf(3).
-
- _SC_NPROCESSORS_ONLN - Numărul de procesoare aflate în prezent online (disponibile). A se vedea și get_nprocs_conf(3).
VALOAREA RETURNATĂ
Valoarea returnată de sysconf() 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ă.
ERORI-IEȘIRE
- EINVAL
- name nu este valid.
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
sysconf() | Siguranța firelor | MT-Safe env |
STANDARDE
POSIX.1-2008.
ISTORIC
POSIX.1-2001.
ERORI
Este dificil de utilizat ARG_MAX deoarece nu este specificat cât din spațiul de argumentare pentru exec(3) este consumat de variabilele de mediu ale utilizatorului.
Unele valori returnate pot fi uriașe; acestea nu sunt potrivite pentru alocarea de memorie.
CONSULTAȚI ȘI
bc(1), expr(1), getconf(1), locale(1), confstr(3), fpathconf(3), pathconf(3), posixoptions(7)
TRADUCERE
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.
17 mai 2025 | Pagini de manual de Linux 6.15 |