bionic (7) signal.7.gz

Provided by: manpages-it_3.73-2_all bug

NOME

       signal - panoramica sui segnali

DESCRIZIONE

       Linux  supporta  sia  i  segnali  POSIX  affidabili  (d'ora  in  avanti "segnali standard") che i segnali
       real-time POSIX.

   Disposizioni dei segnali
       Ciascun segnale ha una disposizione attuale, che determina come si comporta il processo quando il segnale
       viene recapitato.

       Le  voci  nella  colonna "Azione" della tabella qui sotto specificano la disposizione predefinita di ogni
       segnale, come segue:

       Term   L'azione predefinita è terminare il processo.

       Ign    L'azione predefinita è ignorare il segnale.

       Core   L'azione predefinita è terminare il processo ed eseguire un core dump (vedere core(5)).

       Stop   L'azione predefinita è arrestare il processo.

       Cont   L'azione predefinita è far continuare il processo se esso è attualmente fermo.

       Un processo può cambiare la disposizione di un segnale usando sigaction(2) o signal(2) (l'ultimo  è  meno
       portabile  quando  si  crea  un  gestore  di  segnale;  si veda signal(2) per i dettagli).  Usando queste
       chiamate di sistema, un processo può assumere uno dei seguenti comportamenti  al  recapito  del  segnale:
       eseguire  l'azione  predefinita;  ignorare il segnale; intercettare il segnale con un gestore di segnale,
       una funzione definita dal programmatore che è automaticamente invocata quando il segnale è recapitato (il
       gestore di segnale viene chiamato, in modo predefinito, nel normale stack del processo.  È possibile fare
       in modo che il gestore di segnale usi uno stack alternativo: vedere sigaltstack(2) per una discussione su
       come farlo e quando può essere utile).

       La  disposizione del segnale è un attributo per processo: in un'applicazione multithread, la disposizione
       di un particolare segnale è la stessa per tutti i thread.

       Un processo figlio creato tramite fork(2) eredita una copia della disposizione dei segnali del  genitore.
       Durante  un  execve(2), la disposizione dei segnali gestiti viene inizializzata ai valori predefiniti; la
       disposizione dei segnali ignorati viene lasciata com'è.

   Inviare un segnale
       Le seguenti chiamate di sistema e funzioni di libreria permettono al chiamante di inviare un segnale:

       raise(3)        Invia un segnale al thread chiamante.

       kill(2)         invia un segnale al processo specificato,  a  tutti  i  membri  del  processo  di  gruppo
                       specificato o a tutti i processi nel sistema.

       killpg(2)       Invia un segnale a tutti i membri del processo di gruppo specificato.

       pthread_kill(3) Invia un segnale al thread POSIX specificato nello stesso processo del chiamante.

       tgkill(2)       Invia  un segnale ad un processo specificato all'interno di un processo ben preciso (è la
                       chiamata di sistema usata per implementare pthread_kill(3)).

       sigqueue(3)     Invia un segnale real-time insieme a dati di accompagnamento al processo specificato.

   Attendere che un segnale venga intercettato
       Le seguenti chiamate di sistema sospendono l'esecuzione del processo chiamante o del  thread  finché  non
       viene intercettato un segnale (o finché un segnale non gestito fa terminare il processo):

       pause(2)        Sospende l'esecuzione finché non viene intercettato un segnale qualunque.

       sigsuspend(2)   Cambia  temporaneamente  la  maschera  del segnale (vedere sotto) e sospende l'esecuzione
                       finché viene intercettato uno dei segnali senza maschera.

   Accettare in modo sincrono un segnale
       Anziché intercettare un segnale in modo asincrono tramite un gestore di segnale, è possibile accettare il
       segnale  in  modo sincrono, cioé bloccare l'esecuzione finché il segnale viene consegnato: a questo punto
       il kernel restituirà informazioni sul segnale al chiamante.  Ci sono in generale due modi per farlo:

       * sigwaitinfo(2), sigtimedwait(2), e sigwait(3) sospendono l'esecuzione finché viene consegnato  uno  dei
         segnali  contenuti  in  un  insieme  specifico.  Ognuna di queste chiamate restituisce informazioni sul
         segnale consegnato.

       * signalfd(2) restituisce un descrittore di file che  può  essere  usato  per  leggere  informazioni  sui
         segnali consegnati al chiamante.  Ogni read(2) da questo descrittore di file blocca il chiamante finché
         uno dei segnali nell'insieme specificato dalla  chiamata  signalfd(2)  viene  consegnato  al  chiamante
         stesso.  Il buffer restituito da read(2) contiene una struttura che descrive il segnale.

   Maschera segnale e segnali pendenti
       Un  segnale può essere bloccato, cioé non verrà recapitato fino a quando non verrà sbloccato.  Un segnale
       viene definito pendente nel periodo di tempo che passa tra quando è stato generato e quando è recapitato.

       Ciascun thread in un processo ha una maschera segnale indipendente, che indica l'insieme di  segnali  che
       il  thread  attualmente  sta  bloccando.   Un  thread  può  manipolare  la  sua  maschera  segnale usando
       pthread_sigmask(3).  In un'applicazione tradizionale a thread singolo, si può  usare  sigprocmask(2)  per
       manipolare la maschera segnale.

       Un  processo  figlio  creato  tramite  fork(2)  eredita  una copia della maschera di segnale del processo
       genitore: la maschera di segnale viene preservata attraverso execve(2).

       Un segnale può essere generato (e quindi pendente) per un processo nel suo insieme (per esempio quando  è
       inviato  usando  kill(2))  o  per uno specifico thread (per esempio certi segnali, come SIGSEGV e SIGFPE,
       generati come conseguenza dell'esecuzione di una istruzione specifica in linguaggio macchina sono diretti
       al thread, come lo sono i segnali indirizzati a uno specifico thread usando pthread_kill(3)).  Un segnale
       diretto al processo può essere recapitato a uno qualunque dei thread che attualmente non hanno il segnale
       bloccato.   Se  più  di  uno  dei  thread  ha  il  segnale  sbloccato, allora il kernel sceglie un thread
       arbitrario a cui recapitare il segnale.

       Un thread può ottenere l'insieme di segnali che attualmente ha  pendenti  usando  sigpending(2).   Questo
       insieme  consisterà  nell'unione  dell'insieme  dei  segnali  diretti ai processi pendenti e l'insieme di
       segnali pendenti per il thread chiamante.

       L'insieme di segnali pendenti di  un  processo  figlio  creato  tramite  fork(2)  inizialmente  è  vuoto:
       l'insieme di segnali pendenti è preservato attraverso execve(2).

   Segnali standard
       Linux   supporta   i   segnali   standard  elencati  di  seguito.   Molti  numeri  di  segnale  dipendono
       dall'architettura, come indicato nella colonna "Valore" (dove  sono  indicati  tre  valori,  il  primo  è
       normalmente  valido  per  alpha  e  sparc,  quello  in  mezzo per x86, arm e la maggior parte delle altre
       architetture, e l'ultimo per mips (i valori per parisc non vengono mostrati; si  vedano  i  sorgenti  del
       kernel Linux per la numerazione dei segnali su questa architettura).  A - denota che un segnale è assente
       sulla corrispondente architettura).

       Prima i segnali descritti nello standard POSIX.1-1990 originale.

       Segnale    Valore    Azione   Commento
       ───────────────────────────────────────────────────────────────────────────────────
       SIGHUP        1       Term    La linea sul terminale che ha il controllo è stata
                                     agganciata o il processo che ha il controllo è morto
       SIGINT        2       Term    Interrupt da tastiera
       SIGQUIT       3       Core    Segnale d'uscita della tastiera
       SIGILL        4       Core    Istruzione illegale
       SIGABRT       6       Core    Segnale d'abbandono di abort(3)
       SIGFPE        8       Core    Eccezione in virgola mobile
       SIGKILL       9       Term    Termina il processo
       SIGSEGV      11       Core    Riferimento di memoria non valido
       SIGPIPE      13       Term    Pipe rotta: scrittura su una pipe priva di

                                     lettori
       SIGALRM      14       Term    Segnale del timer da alarm(2)
       SIGTERM      15       Term    Segnale di termine
       SIGUSR1   30,10,16    Term    Segnale 1 definito dall'utente
       SIGUSR2   31,12,17    Term    Segnale 2 definito dall'utente
       SIGCHLD   20,17,18    Ign     Figlio fermato o terminato
       SIGCONT   19,18,25    Cont    Continua se fermato
       SIGSTOP   17,19,23    Stop    Ferma il processo
       SIGTSTP   18,20,24    Stop    Stop digitato dal terminale
       SIGTTIN   21,21,26    Stop    Input da terminale per un processo sullo sfondo
       SIGTTOU   22,22,27    Stop    Output da terminale per un processo sullo sfondo

       I segnali SIGKILL e SIGSTOP non possono essere intercettati, bloccati o ignorati.

       Seguono i segnali che non sono nello standard POSIX.1-1990 ma sono descritti in SUSv2 e POSIX.1-2001.

       Segnale      Valore    Azione   Commento
       ─────────────────────────────────────────────────────────────────────────────
       SIGBUS      10,7,10     Core    Errore sul bus (accesso errato alla memoria)
       SIGPOLL                 Term    Evento suscettibile di polling (Sys V).
                                       Sinonimo di SIGIO
       SIGPROF     27,27,29    Term    Timer del profiler scaduto
       SIGSYS      12,31,12    Core    Argomento errato alla routine (SVr4)
       SIGTRAP        5        Core    Trappola per trace/breakpoint
       SIGURG      16,23,21    Ign     Condizione urgente sul socket (4.2BSD)
       SIGVTALRM   26,26,28    Term    Allarme virtuale (4.2BSD)
       SIGXCPU     24,24,30    Core    Superato tempo limite di CPU (4.2BSD)
       SIGXFSZ     25,25,31    Core    Limite dimensione file superato (4.2BSD)

       Fino a Linux 2.2 incluso, il comportamento predefinito per SIGSYS, SIGXCPU, SIGXFSZ, e  (su  architetture
       diverse  da  SPARC  e  MIPS)  SIGBUS era terminare il processo (senza eseguire un core dump).  (In alcuni
       altri sistemi UNIX l'azione predefinita per SIGXCPU e SIGXFSZ è terminare il processo senza  eseguire  un
       core dump.)  Linux 2.4 è conforme ai requisiti di POSIX.1-2001 per questi segnali, terminando il processo
       con un core dump.

       E ora altri vari segnali.

       Segnale      Valore    Azione   Commento
       ───────────────────────────────────────────────────────────────────────────────────
       SIGIOT         6        Core    Trappola IOT. Sinonimo di SIGABRT
       SIGEMT       7,-,7      Term
       SIGSTKFLT    -,16,-     Term    Errore dello stack del coprocessore (inutilizzato)
       SIGIO       23,29,22    Term    I/O ora possibile (4.2 BSD)
       SIGCLD       -,-,18     Ign     Sinonimo di SIGCHLD
       SIGPWR      29,30,19    Term    Mancanza di corrente (System V)
       SIGINFO      29,-,-             Sinonimo di SIGPWR
       SIGLOST      -,-,-      Term    Perso il lock del file (non usato)
       SIGWINCH    28,28,20    Ign     Dimensioni finestra cambiate (4.3BSD, Sun)
       SIGUNUSED    -,31,-     Core    Sinonimo di SIGSYS)

       (Il segnale 29 è SIGINFO / SIGPWR su alpha ma SIGLOST su sparc.)

       SIGEMT non è specificato in POSIX.1-2001, tuttavia appare in molti altri sistemi UNIX, dove la sua azione
       predefinita è tipicamente di terminare il processo con un core dump.

       SIGPWR  (non  specificato in POSIX.1-2001) è tipicamente ignorato in via predefinita in questi altri UNIX
       dove appare.

       SIGIO (non specificato in POSIX.1-2001) è ignorato in via predefinita in molti altri sistemi UNIX.

       Dove definito, SIGUNUSED è sinonimo di SIGSYS sulla maggior parte delle architetture.

   Segnali Real-time
       Linux supporta i segnali real-time come originariamente definiti nelle estensioni real-time  di  POSIX.1b
       (e  ora  incluse  in  POSIX.1-2001).  L'intervallo di segnali real-time supportati è definito dalle macro
       SIGRTMIN e SIGRTMAX.  POSIX.1-2001 richiede che un'implementazione supporti almeno  i  segnali  real-time
       _POSIX_RTSIG_MAX(8) .

       Il  kernel  Linux supporta un intervallo di 32 diversi segnali real-time, numerati da 33 a 64.  Comunque,
       l'implementazione di glibc POSIX dei thread usa internamente due (per  NTPL)  o  tre  (per  LinuxThreads)
       segnali real-time (vedere pthreads(7)), e sistema il valore di SIGRTMIN in modo adatto (a 34 o 35).  Dato
       che l'intervallo di segnali real-time disponibili varia a  seconda  dell'implementazione  dei  thread  di
       glibc  (e questa variazione può avvenire al run-time in accordo con kernel e glibc disponibili), e poiché
       l'intervallo dei segnali real-time varia tra  i  vari  sistemi  UNIX,  i  programmi  non  dovrebbero  mai
       riferirsi  ai  segnali  real-time usando numeri prefissati.  Dovrebbero invece sempre fare riferimento ai
       segnali real-time usando  la  notazione  SIGRTMIN+n,  e  includere  controlli  adatti  (run-time)  perché
       SIGRTMIN+n non ecceda SIGRTMAX.

       Diversamente  dai  segnali  standard,  i  segnali  real-time  non hanno significati predefiniti: l'intero
       insieme dei segnali real-time può essere usato per scopi definiti dall'applicazione.

       L'azione predefinita per i segnali real-time non gestiti è di terminare il processo ricevente.

       I segnali real-time si distinguono da quanto segue:

       1.  Istanze multiple di segnali real-time possono essere accodate.  Viceversa, se istanze multiple di  un
           segnale  predefinito  sono  consegnate  mentre  questo segnale è bloccato, allora viene accodata solo
           un'istanza.

       2.  Se il segnale è inviato usando sigqueue(3), un valore di accompagnamento (che  sia  un  intero  o  un
           puntatore)  può  essere  inviato  con il segnale.  Se il processo ricevente stabilisce un gestore per
           questo segnale usando il flag  SA_SIGINFO  a  sigaction(2)  allora  esso  può  ottenere  questo  dato
           attraverso  il  campo  si_value  della struttura siginfo_t passata come secondo argomento al gestore.
           Inoltre i campi si_pid e si_uid di questa struttura possono essere usati per ottenere PID e ID di  un
           utente reale del processo che invia il segnale.

       3.  I  segnali  real-time  sono  recapitati  in  un ordine garantito.  I segnali real-time multipli dello
           stesso tipo sono recapitati nell'ordine in cui vengono inviati.  Se segnali  real-time  diversi  sono
           inviati  ad  un  processo,  essi sono consegnati partendo dal segnale con il numero più basso (cioè i
           segnali con i numeri bassi hanno la priorità maggiore).  Al contrario, se segnali  standard  multipli
           sono in sospeso per un processo, essi verranno recapitati in un ordine non specificato.

       Se sia i segnali predefinit che quelli real-time sono in attesa di un processo, POSIX non specifica quale
       consegnare per primo.  Linux, come molte altre implementazioni, in questo caso  dà  priorità  ai  segnali
       predefiniti.

       Conformemente   a   POSIX,   un'implementazione   deve  permettere  che  almeno  (32)  segnali  real-time
       _POSIX_SIGQUEUE_MAX vengano accodati a un processo.  Tuttavia Linux fa le cose diversamente.  Nei  kernel
       fino  a  e  incluso  il 2.6.7, Linux impone un limite globale al numero di segnali real-time accodati per
       tutti i processi.  Questo limite  può  essere  visto  e  cambiato  (con  privilegi)  attraverso  il  file
       /proc/sys/kernel/rtsig-max.   Un  file correlato, /proc/sys/kernel/rtsig-nr, può essere usato per trovare
       quanti segnali real-time sono attualmente  accodati.   In  Linux  2.6.8,  queste  interfacce  /proc  sono
       sostituite  dal  limite  di  risorsa  RLIMIT_SIGPENDING  che specifica un limite per utente per i segnali
       accodati.  Vedere setrlimit(2) per ulteriori dettagli.

   Funzioni async-signal-safe
       Una funzione di manipolazione dei segnali deve fare  molta  attenzione,  poiché  qualunque  processo  può
       essere  interrotto  in  un  punto arbitrario durante l'esecuzione del programma.  POSIX ha il concetto di
       "funzione sicura".  Se un segnale interrompe l'esecuzione di una funzione non sicura,  e  handler  chiama
       una funzione non sicura, allora il comportamento del programma non è definito.

       POSIX.1-2004  (già  conosciuto come POSIX.1-2001 Technical Corrigendum 2) richiede all'implementazione di
       garantire che le seguenti funzioni possano essere chiamate in sicurezza in un gestore di segnali:

           _Exit()
           _exit()
           abort()
           accept()
           access()
           aio_error()
           aio_return()
           aio_suspend()
           alarm()
           bind()
           cfgetispeed()
           cfgetospeed()
           cfsetispeed()
           cfsetospeed()
           chdir()
           chmod()
           chown()
           clock_gettime()
           close()
           connect()
           creat()
           dup()
           dup2()
           execle()
           execve()
           fchmod()
           fchown()
           fcntl()
           fdatasync()
           fork()
           fpathconf()
           fstat()
           fsync()
           ftruncate()
           getegid()
           geteuid()
           getgid()
           getgroups()
           getpeername()
           getpgrp()
           getpid()
           getppid()
           getsockname()
           getsockopt()
           getuid()
           kill()
           link()
           listen()
           lseek()
           lstat()
           mkdir()
           mkfifo()
           open()
           pathconf()
           pause()
           pipe()
           poll()
           posix_trace_event()
           pselect()
           raise()
           read()
           readlink()
           recv()
           recvfrom()
           recvmsg()
           rename()
           rmdir()
           select()
           sem_post()
           send()
           sendmsg()
           sendto()
           setgid()
           setpgid()
           setsid()
           setsockopt()
           setuid()
           shutdown()
           sigaction()
           sigaddset()
           sigdelset()
           sigemptyset()
           sigfillset()
           sigismember()
           signal()
           sigpause()
           sigpending()
           sigprocmask()
           sigqueue()
           sigset()
           sigsuspend()
           sleep()
           sockatmark()
           socket()
           socketpair()
           stat()
           symlink()
           sysconf()
           tcdrain()
           tcflow()
           tcflush()
           tcgetattr()
           tcgetpgrp()
           tcsendbreak()
           tcsetattr()
           tcsetpgrp()
           time()
           timer_getoverrun()
           timer_gettime()
           timer_settime()
           times()
           umask()
           uname()
           unlink()
           utime()
           wait()
           waitpid()
           write()

       POSIX.1-2008 rimuove fpathconf(), pathconf(), e sysconf() dall'elenco precedente, e aggiunge le  seguenti
       funzioni:

           execl()
           execv()
           faccessat()
           fchmodat()
           fchownat()
           fexecve()
           fstatat()
           futimens()
           linkat()
           mkdirat()
           mkfifoat()
           mknod()
           mknodat()
           openat()
           readlinkat()
           renameat()
           symlinkat()
           unlinkat()
           utimensat()
           utimes()

   Interruzione delle chiamate di sistema e funzioni di libreria da parte di gestori di segnale
       Se  viene  chiamato  un gestore di segnale mentre una chiamata di sistema o una funzione di libreria sono
       bloccate, può succedere:

       * che la chiamata venga automaticamente riavviata dopo il ritorno del gestore di segnale; o

       * che la chiamata fallisca con l'errore EINTR.

       Il verificarsi di uno di questi due comportamenti dipende dall'interfaccia e dall'uso  o  meno  del  flag
       SA_RESTART alla creazione del gestore di segnale (vedere sigaction(2)).  I dettagli variano tra i sistemi
       UNIX: seguono quelli per Linux.

       Se un gestore di segnale interrompe una  chiamata  bloccata  verso  una  delle  seguenti  interfacce,  la
       chiamata verrà automaticamente riavviata dopo il ritorno del gestore di segnale, se è stato usato il flag
       SA_RESTART, altrimenti la chiamata fallirà con l'errore EINTR: chiamate

           * read(2), readv(2), write(2), writev(2), e  ioctl(2)  su  dispositivi  "lenti".   Un  dispositivo  è
             "lento"  quando  le  chiamate  I/O  possono  bloccarsi  per  un tempo indeterminato, per esempio un
             terminale, una pipe o un socket (un disco non è un dispositivo lento, stando a quanto dice  la  sua
             definizione).  Se una chiamata I/O su un dispositivo lento ha già trasferito alcuni dati al momento
             dell'interruzione da parte del gestore di segnale, la chiamata restituirà uno stato di successo (di
             solito il numero di byte trasferiti).

           * open(2), se si può bloccare (per esempio nell'aprire un FIFO: vedere fifo(7)).

           * wait(2), wait3(2), wait4(2), waitid(2), e waitpid(2).

           * Interfacce  socket:  accept(2), connect(2), recv(2), recvfrom(2), recvmmsg(2), recvmsg(2), send(2),
             sendto(2), e sendmsg(2), a meno che venga impostato un timeout sul socket (vedere sotto).

           * Interfacce che bloccano i file: flock(2) e fcntl(2) F_SETLKW.

           * Interfacce  per  messaggi  POSIX  in  coda:  mq_receive(3),   mq_timedreceive(3),   mq_send(3),   e
             mq_timedsend(3).

           * futex(2) FUTEX_WAIT (a partire da Linux 2.6.22; prima falliva sempre con EINTR).

           * Interfacce semaforo POSIX: sem_wait(3) e sem_timedwait(3) (a partire da Linux 2.6.22; prima falliva
             sempre con EINTR).

       Le seguenti interfacce non vengono mai riavviate dopo l'interruzione da parte di un gestore  di  segnale,
       senza  curarsi  dell'uso di SA_RESTART; falliscono sempre con l'errore EINTR quando vengono interrotte da
       un gestore di segnale:

           * Interfacce socket in "input", quando è stato impostato un timeout (SO_RCVTIMEO) sul  socket  usando
             setsockopt(2):  accept(2),  recv(2),  recvfrom(2),  recvmmsg(2)  (anche con un argomento imeout non
             NULLO) e recvmsg(2).

           * Interfacce socket in "output", quando è stato impostato un timeout (SO_RCVTIMEO) sul socket  usando
             setsockopt(2): connect(2), send(2), sendto(2), e sendmsg(2).

           * Interfacce usate per aspettare segnali: pause(2), sigsuspend(2), sigtimedwait(2), e sigwaitinfo(2).

           * Interfacce  condivise  per  descrittori  di  file epoll_wait(2), epoll_pwait(2), poll(2), ppoll(2),
             select(2), e pselect(2).

           * Interfacce IPV System V: msgrcv(2), msgsnd(2), semop(2), e semtimedop(2).

           * Interfacce sleep: clock_nanosleep(2), nanosleep(2), e usleep(3).

           * read(2) da un descrittore di file inotify(7).

           * io_getevents(2).

       La funzione sleep(3) non viene mai riavviata anche quando viene interrotta da un gestore, ma  restituisce
       uno stato di successo: il numero di secondi rimanenti.

   Interruzione di chiamate di sistema e funzioni di libreria da parte di segnali di stop
       Su Linux, anche in assenza di gestori di segnale alcune interfacce di blocco possono fallire con l'errore
       EINTR dopo che il processo è stato fermato da un segnale  di  stop,  e  poi  riavviato  tramite  SIGCONT.
       Questo comportamento non è sanzionato da POSIX.1, e non avviene su altri sistemi.

       Le interfacce Linux che si comportano in questo modo sono:

           * Interfacce socket in "input", quando è stato impostato un timeout (SO_RCVTIMEO)
              sul  socket  usando  setsockopt(2):  accept(2),  recv(2),  recvfrom(2),  recvmmsg(2) (anche con un
             argomento timeout non NULL), e recvmsg(2).

           * Interfacce socket in "output", quando è stato impostato un timeout (SO_RCVTIMEO) sul socket  usando
             setsockopt(2):  connect(2),  send(2),  sendto(2),  e sendmsg(2), se è stato impostato un timeout in
             invio (SO_SNDTIMEO).

           * epoll_wait(2), epoll_pwait(2).

           * semop(2), semtimedop(2).

           * sigtimedwait(2), sigwaitinfo(2).

           * read(2) da un descrittore di file inotify(7).

           * Linux 2.6.21 e precedenti: futex(2) FUTEX_WAIT, sem_timedwait(3), sem_wait(3).

           * Linux 2.6.8 e precedenti: msgrcv(2), msgsnd(2).

           * Linux 2.4 e precedenti: nanosleep(2).

CONFORME A

       POSIX.1, tranne dove indicato.

VEDERE ANCHE

       kill(1),  getrlimit(2),  kill(2),  killpg(2),   restart_syscall(2),   rt_sigqueueinfo(2),   setitimer(2),
       setrlimit(2),   sgetmask(2),   sigaction(2),   sigaltstack(2),   signal(2),  signalfd(2),  sigpending(2),
       sigprocmask(2),   sigsuspend(2),   sigwaitinfo(2),   abort(3),   bsd_signal(3),   longjmp(3),   raise(3),
       pthread_sigqueue(3),   sigqueue(3),   sigset(3),   sigsetops(3),   sigvec(3),  sigwait(3),  strsignal(3),
       sysv_signal(3), core(5), proc(5), pthreads(7), sigevent(7)

COLOPHON

       Questa pagina fa parte del rilascio 3.73 del progetto Linux man-pages.  Una descrizione del progetto,  le
       istruzioni  per  la  segnalazione  degli  errori,  e  l'ultima  versione  di  questa  pagina  si trova su
       http://www.kernel.org/doc/man-pages/.

       La versione italiana fa parte del pacchetto  man-pages-it  v.  3.73,  a  cura  di:  ILDP  "Italian  Linux
       Documentation Project" http://www.pluto.it/ildp
       Per la traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/
       Segnalare eventuali errori di traduzione a ildp@pluto.it