1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
.\" Copyright (c) 1994 Mike Battersby <mike@starbug.apana.org.au>
.\" based on work by faith@cs.unc.edu
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Traduction 13/10/1996 par Christophe Blaess (ccb@club-internet.fr)
.\"
.TH SIGNAL 2 "13 Octobre 1996" Linux "Manuel du programmeur Linux"
.SH NOM
signal \- Gestionnaire ANSI C de signaux.
.SH SYNOPSIS
.B #include <signal.h>
.sp 2
.BI "void (*signal(int " signum ", void (*" handler ")(int)))(int);"
.SH DESCRIPTION
L'appel systeme
.B signal
installe un nouveau gestionnaire pour le signal numero
.IR signum .
Le gestionnaire de signal est
.I handler
qui peut etre soit une fonction specifique de l'utilisateur, soit
l'une des constantes suivantes :
.RS
.TP
.B SIG_IGN
Ignorer le signal
.TP
.B SIG_DFL
Reprendre le comportement par defaut pour le signal
.RE
.PP
L'argument entier qui est passe au gestionnaire de signal est le numero
du signal. Ceci permet d'utiliser un meme gestionnaire pour plusieurs
signaux.
.SH "VALEUR RENVOYEE"
.B signal
renvoie la valeur precedente du gestionnaire de signaux, ou
.B SIG_ERR
en cas d'erreur.
.SH NOTES
On ne peut fournir de gestionnaire de signaux ni pour
.B SIGKILL
ni pour
.BR SIGSTOP .
.PP
Contrairement aux systemes BSD, les signaux sous Linux reprennent
leurs comportements par defaut apres leur premiere reception. Il
est donc generalement necessaire de rearmer le gestionnaire (par
un nouvel appel a
.B signal
au sein meme du gestionnaire.
Neanmoins, si l'on inclut
.B "<bsd/signal.h>
a la place de
.B "<signal.h>"
alors
.B signal
est redefini en tant que
.B __bsd_signal
et disposera alors de la semantique BSD.
Les deux versions sont construites a partir de
.BR signaction (2).
.PP
Si le prototype en haut de cette page vous semble confus,
decomposez-le ainsi
.PP
typedef void (*sighandler_t)(int);
.br
.BI "sighandler_t signal(int " signum ", sighandler_t " handler );
Comme specifie par POSIX, le comportement d'un processus est
indefini apres la reception d'un signal SIGFPE, SIGILL, ou
SIGSEGV qui n'a pas ete engendre par une fonction \fIkill()\fP ou
\fIraise()\fP.
La division entiere par zero a un resultat indefini, sur certaines
architecture elle declenche un signal SIGFPE. Ignorer ce signal
peut conduire a des boucles infinies.
.SH "CONFORMITE"
ANSI C
.SH "VOIR AUSSI"
.BR kill "(1), " kill "(2), " killpg "(2), " pause "(2), " raise "(3), "
.BR sigaction "(2), " signal "(7), " sigsetops "(3), " sigvec (2)
|