Manpages

NAAM

signal − ANSI C signaal behandeling

OVERZICHT

#include <signal.h>

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t actie);

BESCHRIJVING

De signal systeem aanroep installeert een nieuwe signaal behandelaar voor het signaal met nummer signum. De signaal behandelaar wordt gezet in actie wat een door de gebruiker bepaalde functie mag zijn, of een van de volgende:

SIG_IGN

{negeer} negeer het signaal.

SIG_DFL

{standaard} herzet het signaal naar zijn standaard gedrag.

Het hele getal argument dat aan de signaal behandelaar wordt overhandigd is het signaal nummer. Dit maakt het mogelijk om 1 signaal behandelaar voor meerder signalen te gebruiken.

Signaal behandelaars worden aangeroepen telkens weer wanneer het proces het overeenkomende signaal ontvangt. Het gedrag van de standaard signaal behandelaar wisselt voor de verschillende signalen, deze gedragingen zijn beschreven in signal(7).

TERUGGEEF WAARDE

signal geeft de vorige waarde van de signaal behandelaar, of SIG_ERR bij een fout.

OPMERKINGEN

Signaal behandelaars kunnen niet gezet worden voor SIGKILL of SIGSTOP.

Sinds libC6 gebruikt, signal BSD regels en het standaard gedrag is niet herzet wanneer het signaal opduikt. Je kunt sysv_signal gebruiken om SysV regels te krijgen.

Allebei, signal en sysv_signal zijn bibliotheek routines die bovenop sigaction(2) zijn gebouwd.

Volgens POSIX is het gedrag van een proces onbepaald nadat het een SIGFPE, SIGILL, of SIGSEGV heeft genegeerd dat niet veroorzaakt werd door de kill(2) of de raise(2) functies. Gehele getallen door nul delen heeft onbepaalde gevolgen. Op sommige architecturen zal het een SIGFPE signaal veroorzaken (delen van het meest negatieve gehele getal door −1 kan ook een SIGFPE veroorzaken). Het negeren van dit signaal kan leiden tot een oneindige lus.

Volgens POSIX (B.3.3.1.3) moet je de actie voor SIGCHLD niet naar SIG_IGN zetten. Hier verschillen de BSD en SYSV gedragingen, wat zorgt dat BSD software {zachtgoed} dat de actie voor SIGCHLD naar SIG_IGN zet faalt op Linux.

Het gebruik van de sighandler_t is een GNU uitbreiding, en deze soort is alleen voorhanden wanneer _GNU_SOURCE bepaald is.

VOLDOET AAN

ANSI C

ZIE OOK

kill(1) {vermoord}, kill(2) {vermoord}, killpg(2) {vermoord pg}, pause(2) {pauze}, raise(3) {opwerpen}, sigaction(2) {signaal daad}, signal(7) {signaal}, sigsetops(3) {signaal zet operatie}, sigvec(2) {signaal pointer}, alarm(2) {alarm}

VERTALING

Dit is een handleiding uit manpages-dev 1.29. Alles wat tussen ’{’..’}’ staat is aanvullende vertaling, en hoort niet bij de originele handleiding. Email naar <manpages-nl [AT] nl.org>.

$Id: signal.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $