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