Provided by: manpages-ro_4.21.0-2_all 

NUME
intro - introducere la apelurile de sistem
DESCRIERE
Secțiunea 2 a manualului descrie apelurile de sistem Linux. Un apel de sistem este un punct de intrare
în nucleul Linux. De obicei, apelurile de sistem nu sunt invocate direct: în schimb, majoritatea
apelurilor de sistem au funcții de învăluire corespunzătoare din biblioteca C care execută pașii necesari
(de exemplu, trecerea în modul nucleu) pentru a invoca apelul de sistem. Astfel, efectuarea unui apel de
sistem arată la fel ca și invocarea unei funcții normale de bibliotecă.
În multe cazuri, funcția de învăluire a bibliotecii C nu face nimic mai mult decât:
• copierea argumentelor și a numărului unic de apel de sistem în registrele în care nucleul le așteaptă;
• trecerea în modul nucleu, moment în care nucleul face adevărata muncă a apelului de sistem;
• definirea errno în cazul în care apelul de sistem returnează un număr de eroare atunci când nucleul
readuce CPU în modul utilizator.
Cu toate acestea, în unele cazuri, o funcție de învăluire poate face mai mult decât atât, de exemplu,
poate efectua o preprocesare a argumentelor înainte de a trece în modul nucleu sau o postprocesare a
valorilor returnate de apelul de sistem. În acest caz, paginile de manual din secțiunea 2 încearcă, în
general, să noteze detaliile atât ale interfeței API a bibliotecii C (de obicei GNU), cât și ale apelului
de sistem brut. Cel mai frecvent, DESCRIEREA principală se va concentra pe interfața bibliotecii C, iar
diferențele pentru apelul de sistem sunt tratate în secțiunea NOTE.
Pentru o listă a apelurilor de sistem Linux, consultați syscalls(2).
VALOAREA RETURNATĂ
În caz de eroare, majoritatea apelurilor de sistem returnează un număr de eroare negativ (adică valoarea
negată a uneia dintre constantele descrise în errno(3)). Funcția de învăluire a bibliotecii C ascunde
acest detaliu apelantului: atunci când un apel de sistem returnează o valoare negativă, funcția de
învăluire copiază valoarea absolută în variabila errno și returnează -1 ca valoare de întoarcere a
funcției de învăluire.
Valoarea returnată de un apel de sistem reușit depinde de apelul respectiv. Multe apeluri de sistem
returnează 0 în caz de succes, dar unele pot returna valori diferite de zero în urma unui apel reușit.
Detaliile sunt descrise în paginile de manual individuale.
În unele cazuri, programatorul trebuie să definească o macro de testare a caracteristicilor pentru a
obține declarația unui apel de sistem din fișierul antet specificat în secțiunea SYNOPSIS din pagina de
manual. (În cazul în care este necesar, aceste macrocomenzi de testare a caracteristicilor trebuie să
fie definite înainte de a include fișiere de antet any). În astfel de cazuri, macrocomanda necesară este
descrisă în pagina de manual. Pentru informații suplimentare despre macrocomenzile de testare a
caracteristicilor, consultați feature_test_macros(7).
STANDARDE
Anumiți termeni și anumite abrevieri sunt utilizate pentru a indica variantele și standardele UNIX la
care sunt conforme apelurile din această secțiune. A se vedea standards(7).
NOTE
Apelarea directă
În cele mai multe cazuri, nu este necesar să se apeleze direct la un apel de sistem, dar există momente
în care biblioteca Standard C nu implementează o funcție de învăluire utilă pentru a face acest lucru.
În acest caz, programatorul trebuie să invoce manual apelul de sistem folosind syscall(2). Din punct de
vedere istoric, acest lucru era posibil și prin utilizarea uneia dintre macrocomenzile _syscall descrise
în _syscall(2).
Autori și termenii drepturilor de autor
Uitați-vă în antetul paginii sursă a manualului pentru a afla autorul (autorii) și condițiile de drepturi
de autor. Rețineți că acestea pot fi diferite de la o pagină la alta!
CONSULTAȚI ȘI
_syscall(2), syscall(2), syscalls(2), errno(3), intro(3), capabilities(7), credentials(7),
feature_test_macros(7), mq_overview(7), path_resolution(7), pipe(7), pty(7), sem_overview(7),
shm_overview(7), signal(7), socket(7), standards(7), symlink(7), system_data_types(7), sysvipc(7),
time(7)
TRADUCERE
Traducerea în limba română a acestui manual a fost creată 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.
Pagini de manual de Linux 6.03 5 februarie 2023 intro(2)