Man page - rt_sigprocmask(2)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

sigprocmask

NUME
BIBLIOTECA
SINOPSIS
DESCRIERE
VALOAREA RETURNATĂ
ERORI-IEȘIRE
VERSIUNI
Diferențe între biblioteca C și nucleu
STANDARDE
ISTORIC
NOTE
CONSULTAȚI ȘI
TRADUCERE

NUME

sigprocmask, rt_sigprocmask, rt_sigprocmask - examinează și modifică semnalele blocate

BIBLIOTECA

Biblioteca C standard ( libc , -lc )

SINOPSIS

#include <signal.h>

/* Prototip pentru funcția de învăluire glibc */
int sigprocmask(int
how , const sigset_t *_Nullable restrict set ,
sigset_t *_Nullable restrict
oldset );

#include <signal.h> /* Definiția constantelor SIG_* */
#include <sys/syscall.h>
/* Definiția constantelor SYS_* */
#include <unistd.h>

/* Prototip pentru apelul de sistem subiacent */
int syscall(SYS_rt_sigprocmask, int
how ,
const kernel_sigset_t *_Nullable
set ,
kernel_sigset_t *_Nullable
oldset ,
size_t
sigsetsize );

/* Prototip pentru apelul de sistem vechi */
[[depreciat]] int syscall(SYS_sigprocmask, int
how ,
const old_kernel_sigset_t *_Nullable
set ,
old_kernel_sigset_t *_Nullable
oldset );

Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros (7)):

sigprocmask ():
_POSIX_C_SOURCE

DESCRIERE

sigprocmask () este utilizat pentru a prelua și/sau modifica masca de semnal a firului apelant. Masca de semnal este setul de semnale a căror livrare este blocată în prezent pentru apelant (a se vedea, de asemenea, signal (7) pentru mai multe detalii).

Comportamentul apelului depinde de valoarea lui how , după cum urmează.
SIG_BLOCK

Setul de semnale blocate este uniunea dintre setul curent și argumentul set .

SIG_UNBLOCK

Semnalele din set sunt eliminate din setul curent de semnale blocate. Este permisă încercarea de deblocare a unui semnal care nu este blocat.

SIG_SETMASK

Setul de semnale blocate este stabilit la argumentul set .

Dacă oldset nu este NULL, valoarea anterioară a măștii de semnal este stocată în oldset .

Dacă set este NULL, atunci masca de semnal este neschimbată (adică how este ignorat), dar valoarea curentă a măștii de semnal este totuși returnată în oldset (dacă nu este NULL).

Un set de funcții pentru modificarea și inspectarea variabilelor de tip sigset_t („seturi de semnale”) este descris în sigsetops (3).

Utilizarea lui sigprocmask () este nespecificată într-un proces cu mai multe fire; a se vedea pthread_sigmask (3).

VALOAREA RETURNATĂ

sigprocmask () returnează 0 în caz de succes. În caz de eșec, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EFAULT

Argumentul set sau oldset indică în afara spațiului de adrese alocat procesului.

EINVAL

Fie valoarea specificată în how nu a fost validă, fie nucleul nu suportă dimensiunea transmisă în sigsetsize.

VERSIUNI

Diferențe între biblioteca C și nucleu

Definiția nucleului pentru sigset_t diferă în ceea ce privește dimensiunea față de cea utilizată de biblioteca C. În această pagină de manual, prima este denumită kernel_sigset_t (este cu toate acestea denumită sigset_t în sursele nucleului).

Funcția glibc pentru sigprocmask () ignoră în tăcere încercările de a bloca cele două semnale în timp real care sunt utilizate în mod intern de către implementarea NPTL threading. A se vedea nptl (7) pentru detalii.

Apelul original al sistemului Linux a fost numit sigprocmask (). Cu toate acestea, odată cu adăugarea semnalelor în timp real în Linux 2.2, tipul de dimensiune fixă, pe 32 de biți sigset_t (denumit old_kernel_sigset_t în această pagină de manual), acceptat de acest apel de sistem, nu mai era adecvat scopului. În consecință, a fost adăugat un nou apel de sistem, rt_sigprocmask (), pentru a permite acceptarea unui tip sigset_t mărit (denumit kernel_sigset_t în această pagină de manual). Noul apel de sistem primește un al patrulea argument, size_t sigsetsize , care specifică dimensiunea în octeți a seturilor de semnale din set și oldset . În prezent, se cere ca acest argument să aibă o valoare fixă specifică arhitecturii (egală cu sizeof(kernel_sigset_t) ).

Funcția de învăluire glibc sigprocmask () ascunde aceste detalii de noi, apelând în mod transparent rt_sigprocmask () atunci când nucleul o furnizează.

STANDARDE

POSIX.1-2008.

ISTORIC

POSIX.1-2001.

NOTE

Nu este posibil să se blocheze SIGKILL sau SIGSTOP . Încercările de a face acest lucru sunt ignorate în tăcere.

Fiecare dintre firele de execuție dintr-un proces are propria mască de semnal.

Un copil creat prin fork (2) moștenește o copie a măștii de semnal a părintelui său; masca de semnal este păstrată în execve (2).

Dacă SIGBUS , SIGFPE , SIGILL sau SIGSEGV sunt generate în timp ce sunt blocate, rezultatul este nedefinit, cu excepția cazului în care semnalul a fost generat de kill (2), sigqueue (3) sau raise (3).

A se vedea sigsetops (3) pentru detalii privind manipularea seturilor de semnale.

Rețineți că este permisă (deși nu este foarte utilă) specificarea atât a lui set , cât și a lui oldset ca fiind NULL.

CONSULTAȚI ȘI

kill (2), pause (2), sigaction (2), signal (2), sigpending (2), sigsuspend (2), pthread_sigmask (3), sigqueue (3), sigsetops (3), signal (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 .