.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2000 Andries Brouwer .\" and Copyright (c) 2007 Michael Kerrisk .\" and Copyright (c) 2008, Linux Foundation, written by Michael Kerrisk .\" .\" based on work by Rik Faith .\" and Mike Battersby . .\" .\" %%%LICENSE_START(VERBATIM) .\" 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. .\" %%%LICENSE_END .\" .\" Modified 2004-11-19, mtk: .\" added pointer to sigaction.2 for details of ignoring SIGCHLD .\" 2007-06-03, mtk: strengthened portability warning, and rewrote .\" various sections. .\" 2008-07-11, mtk: rewrote and expanded portability discussion. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SIGNAL 2 "15 september 2017" Linux "Linux Programmeurs Handleiding" .SH NAAM signal \- ANSI C signaal afhandeling .SH SAMENVATTING \fB#include \fP .PP \fBtypedef void (*sighandler_t)(int);\fP .PP \fBsighandler_t signal(int \fP\fIsignum\fP\fB, sighandler_t \fP\fIactie\fP\fB);\fP .SH BESCHRIJVING Het gedrag van \fBsignal\fP() varieert over UNIX systemen, en heeft ook historisch gevarieerd over de verschillende versies van Linux. \fBVermijn zijn gebruik\fP; gebruik \fBsignaction\fP(2) in zijn plaats. Zie \fBOverdraagbaarheid\fP hieronder. .PP \fBsignal\fP() stelt de dispositie van het signaal \fIsignum\fP in op \fIafhandelaar\fP, hetgeen ofwel \fBSIG_IGN\fP is, of wel \fBSIG_DFL\fP of het adres van een door de programmeur gedefinieerde functie (een "signaal afhandelaar"). .PP Zodra het signaal \fIsignum\fP wordt afgeleverd bij een proces, dan zal een van de volgende dingen gebeuren: .TP 3 * Als de dispositie wordt gezet op \fBSIG_IGN\fP, dan wordt het signaal genegeerd. .TP * Als de dispositie wordt gezet op \fBSIG_DFL\fP dan zal de standaard actie geassocieerd met het signaal (zie \fBsignal\fP(7)) optreden. .TP * Als de dispositie wordt gezet op een functie, dan wordt allereerst de dispositie gereset op \fBSIG_DFL\fP of het signaal wordt geblokkeerd (zie \fIOverdraagbaarheid\fP hieronder), en vervolgens wordt \fIafhandelaar\fP aangeroepen met argument \fIsignum\fP. Als de aanroep van de afhandelaar er voor zorgt dat het signaal wordt geblokkeerd, dan wordt het signaal gedeblokkeerd bij terug keer van de afhandelaar. .PP De signalen \fBSIGKILL\fP en \fBSIGSTOP\fP kunnen niet worden gevangen of genegeerd. .SH "EIND WAARDE" \fBsignal\fP() geeft de vorige waarde van de signaal afhandelaar, of \fBSIG_ERR\fP bij een fout. .SH FOUTEN .TP \fBEINVAL\fP \fIsignum\fP is ongeldig. .SH "VOLDOET AAN" POSIX.1\-2001, POSIX.1\-2008, C89, C99. .SH OPMERKINGEN De effecten van \fBsignal\fP() in een multithreaded proces zijn niet gespecificeerd. .PP Volgens POSIX is het gedrag van een proces ongedefinieerd als het een \fBSIGFPE\fP, \fBSIGILL\fP of \fBSIGSEGV\fP negeert dat niet voortgebracht werd door de \fBkill\fP() of de \fBraise\fP() functies. Heel getal delen door nul heeft ongedefinieerd gevolg. Op sommige architecturen zal het een \fBSIGFPE\fP signaal veroorzaken. (Ook het delen van het meest negatieve hele getal door \-1 kan een \fBSIGFPE\fP veroorzaken.) Negeren van dit signaal zou tot een eindeloze lus kunnen leiden. .PP Zie \fBsigaction\fP(2) voor details over wat er gebeurd als de dispositie \fBSIGCHLD\fP wordt gezet op \fBSIG_IGN\fP. .PP Zie \fBsignal\-safety\fP(7) voor een lijst van de async\-signal\-safe functies die veiligheid aangeroepen kunnen worden binnen een signaal afhandelaar. .PP .\" libc4 and libc5 define .\" .IR SignalHandler ; Het gebruik van de \fBsighandler_t\fP is een GNU uitbreiding, voorhanden wanneer \fB_GNU_SOURCE\fP bepaald is; glibc definieert ook (afkomstig van BSB) \fIsig_t\fP als \fB_BSD_SOURCE\fP (glibc 2.19 en eerder) of \fB_DEFAULT_SOURCE\fP (glibc 2.19 en later) is bepaald. Zonder gebruik van zo een type is de declaratie van \fBsignal\fP() iets moeilijker te lezen.s .PP .in +4n .EX \fBvoid ( *\fP\fIsignal\fP\fB(int \fP\fIsignum\fP\fB, void (*\fP\fIafhandelaar\fP\fB)(int)) ) (int);\fP .EE .in .SS Overdraagbaarheid Het enige overdraagbaar gebruik van \fBsignal\fP() is door het zetten van de signaal dispositie op \fBSIG_DFL\fP of \fBSIG_IGN\fP. De semantiek bij het gebruik van \fBsignal\fP() om een signaal afhandelaar over systemen tot stand te brengen (en POSIX.1 staat expliciet deze variatie toe); \fBgebruik dit niet voor dit doel\fP .PP POSIX.1 loste de overdraagbaarheid rotzooi op door het specificeren van \fBsigaction\fP(2), die voorziet in expliciete controle van de semantiek wanneer een signaal afhandelaar wordt aangeroepen; gebruik dit interface in plaats van \fBsignal\fP(). .PP In de originele UNIX systemen, als een afhandelaar die werd gevestigd gebruikmakend van \fBsignal\fP() werd aangeroepen door het afleveren van een signaal, zou de dispositie van het signaal gereset worden tot \fBSIG_DFL\fP, en het systeem blokkeerde niet de aflevering van volgende instanties van het signaal. Dit is equivalent met het aanroepen van \fBsigaction\fP(2) met de volgende vlaggen: .PP .EX sa.sa_flags = SA_RESETHAND | SA_NODEFER; .EE .PP System\ V voorziet ook in deze semantiek van \fBsignal\fP(). Dat was slecht omdat het signaal opnieuw zou kunnen worden afgeleverd voordat de afhandelaar de kans had gehad zichzelf te herstellen. Bovendien, zouden snelle leveringen van hetzelfde signaal kunnen resulteren in recursieve aanroepen van de afhandelaar. .PP BSD verbeterde deze situatie, echter veranderde helaas ook de semantiek van de bestaande \fBsignal\fP() interface terwijl dit gebeurde. Op BSB, zodra een signaal afhandelaar wordt aangeroepen, wordt de signaal dispositie niet gereset, en volgende instanties van het signaal worden geblokkeerd om te worden afgeleverd terwijl de afhandelaar wordt uitgevoerd. Bovendien, worden bepaalde blokkerende systeem aanroepen automatisch geherstart als ze worden onderbroken door een signaal afhandelaar (zie \fBsignal\fP(7)). De BSD semantiek is equivalent aan aanroepen van \fBsignaction\fP(2) met de volgende vlaggen: .PP .EX sa.sa_flags = SA_RESTART; .EE .PP De situatie op Linux is als volgt: .IP * 2 De kernel \fBsignal\fP() systeem aanroep voorziet in System\ V semantiek. .IP * .\" .\" System V semantics are also provided if one uses the separate .\" .BR sysv_signal (3) .\" function. .\" .IP * .\" The .\" .BR signal () .\" function in Linux libc4 and libc5 provide System\ V semantics. .\" If one on a libc5 system includes .\" .I .\" instead of .\" .IR , .\" then .\" .BR signal () .\" provides BSD semantics. Standaard, in glibc 2 en later, roept de \fBsignal()\fP omwikkel functie de kernel systeem aanroep niet aan. In plaats daarvan wordt \fBsigaction\fP(2) aangeroepen met de vlaggen die de BSD semantiek implementeren. Dit standaard gedrag wordt gemaakt zoals als een bruikbaar feature test macro werd gedefinieerd: \fB_BSD_SOURCE\fP op gllibc 2.19 en eerder of \fB_DEFAULT_SOURCE\fP in glibc 2.19 en later. (Standaard worden beide macros gedefinieerd; zie \fBfeature_test_macros\fP(7) voor details.) Als zulk een feature test macro niet is gedefinieerd dan voorziet \fBsignal\fP() in System\ V semantiek. .SH "ZIE OOK" \fBkill\fP(1), \fBalarm\fP(2), \fBkill\fP(2), \fBpause\fP(2), \fBsigaction\fP(2), \fBsignalfd\fP(2), \fBsigpending\fP(2), \fBsigprocmask\fP(2), \fBsigsuspend\fP(2), \fBbsd_signal\fP(3), \fBkillpg\fP(3), \fBraise\fP(3), \fBsiginterrupt\fP(3), \fBsigqueue\fP(3), \fBsigsetops\fP(3), \fBsigvec\fP(3), \fBsysv_signal\fP(3), \fBsignal\fP(7) .SH COLOFON Deze pagina is onderdeel van release 5.04 van het Linux \fIman\-pages\fP\-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op \%https://www.kernel.org/doc/man\-pages/ te vinden. .SH VERTALING De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema , Mario Blättermann en Luc Castermans . Deze vertaling is vrije documentatie; lees de .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID. Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar .MT debian-l10n-dutch@lists.debian.org .ME .