.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2008, 2014, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Created Sat Aug 21 1995 Thomas K. Dyas .\" Modified Tue Oct 22 22:09:03 1996 by Eric S. Raymond .\" 2008-06-26, mtk, added some more detail on the work done by sigreturn() .\" 2014-12-05, mtk, rewrote all of the rest of the original page .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sigreturn 2 "30 martie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME sigreturn, rt_sigreturn, rt_sigreturn \- returnează de la gestionarul de semnal și curăță cadrul stivei .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fBint sigreturn(...);\fP .fi .SH DESCRIERE .\" See arch/x86/kernel/signal.c::__setup_frame() [in Linux 3.17 source code] Dacă nucleul Linux determină că un semnal deblocat este în așteptare pentru un semnal de proces, atunci, la următoarea tranziție înapoi la modul utilizator în acel proces (de ex. de exemplu, la revenirea de la un apel de sistem sau atunci când procesul este reprogramat pe CPU), acesta creează un nou cadru pe stiva din spațiul de utilizator în care salvează diferite elemente ale contextului procesului (cuvânt de stare al procesorului, registre, semnal mască și parametrii stivei de semnale). .PP De asemenea, nucleul face în așa fel încât, în timpul tranziției înapoi la modul utilizator, să fie apelat gestionarul de semnal și, la revenirea de la gestionarul de semnal, controlul să treacă la o bucată de cod din spațiul utilizatorului, numită în mod obișnuit „trambulina de semnal”. La rândul său, codul de trambulină de semnal apelează \fBsigreturn\fP(). .PP Acest apel \fBsigreturn\fP() anulează tot ceea ce s\-a făcut\[em]modificarea măștii de semnal a procesului, comutarea stivei de semnale (a se vedea \fBsigaltstack\fP(2))\[em]\[em]pentru a invoca gestionarul de semnal. Utilizând informațiile care au fost salvate anterior pe stiva din spațiul utilizatorului, \fBsigreturn\fP() restabilește masca de semnal a procesului, schimbă stivele și restabilește contextul procesului (fanioanele și registrele procesorului, inclusiv indicatorul de stivă și indicatorul de instrucțiuni), astfel încât procesul își reia execuția în punctul în care a fost întrerupt de semnal. .SH "VALOAREA RETURNATĂ" \fBsigreturn\fP() nu returnează niciodată. .SH VERSIUNI Multe sisteme de tip UNIX au un apel de sistem \fBsigreturn\fP() sau aproape echivalent. Cu toate acestea, acest apel nu este specificat în POSIX, iar detaliile privind comportamentul său variază de la un sistem la altul. .SH STANDARDE Niciunul. .SH NOTE .\" See sysdeps/unix/sysv/linux/sigreturn.c and .\" signal/sigreturn.c in the glibc source \fBsigreturn\fP() există doar pentru a permite implementarea gestionarilor de semnal. Nu ar trebui \fBniciodată\fP să fie apelat direct. (Într\-adevăr, un simplu \fBsigretreturn\fP() din biblioteca GNU C returnează pur și simplu \-1, cu \fIerrno\fP configurată la \fBENOSYS\fP). Detaliile privind argumentele (dacă există) transmise către \fBsigretreturn\fP() variază în funcție de arhitectură. (Pe unele arhitecturi, cum ar fi x86\-64, \fBsigretreturn\fP() nu acceptă niciun argument, deoarece toate informațiile de care are nevoie sunt disponibile în cadrul stivei care a fost creată anterior de către nucleu pe stiva din spațiul utilizatorului). .PP .\" See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and .\" sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source. Mai demult, sistemele UNIX plasau codul de trambulină de semnal pe stiva utilizatorului. În prezent, paginile din stiva utilizatorului sunt protejate astfel încât să nu permită executarea de cod. Astfel, pe sistemele Linux contemporane, în funcție de arhitectură, codul de trambulină de semnal se află fie în \fBvdso\fP(7), fie în biblioteca C. În acest din urmă caz, funcția de învăluire \fBsigaction\fP(2) a bibliotecii C informează nucleul cu privire la locația codului de trambulină prin plasarea adresei sale în câmpul \fIsa_restorer\fP al structurii \fIsigaction\fP și activează fanionul \fBSA_RESTORER\fP în câmpul \fIsa_flags\fP. .PP Informațiile salvate despre contextul procesului sunt plasate într\-o structură \fIucontext_t\fP (a se vedea \fI\fP). Această structură este vizibilă în cadrul gestionarului de semnal ca al treilea argument al unui gestionar stabilit prin \fBsigaction\fP(2) cu fanionul \fBSA_SIGINFO\fP. .PP .\" Pe alte sisteme UNIX, funcționarea trambulinei de semnal diferă puțin. În special, pe unele sisteme, la revenirea la modul utilizator, nucleul transmite controlul către trambulină (mai degrabă decât către gestionarul de semnal), iar codul trambulinei apelează gestionarul de semnal (și apoi apelează \fBsigreturn\fP() odată ce gestionarul returnează). .SS "Diferențe între biblioteca C și nucleu" .\" Apelul de sistem original din Linux a fost numit \fBsigreturn\fP(). Cu toate acestea, odată cu adăugarea semnalelor în timp real în Linux 2.2, a fost adăugat un nou apel de sistem, \fBrt_sigreturn\fP(), pentru a suporta un tip \fIsigset_t\fP extins. Biblioteca GNU C ne ascunde aceste detalii, utilizând în mod transparent \fBrt_sigreturn\fP() atunci când nucleul îl furnizează. .SH "CONSULTAȚI ȘI" \fBkill\fP(2), \fBrestart_syscall\fP(2), \fBsigaltstack\fP(2), \fBsignal\fP(2), \fBgetcontext\fP(3), \fBsignal\fP(7), \fBvdso\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .