.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1994,1995 Mike Battersby .\" and Copyright 2004, 2005 Michael Kerrisk .\" based on work by faith@cs.unc.edu .\" .\" %%%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, aeb, 960424 .\" Modified Fri Jan 31 17:31:20 1997 by Eric S. Raymond .\" Modified Thu Nov 26 02:12:45 1998 by aeb - add SIGCHLD stuff. .\" Modified Sat May 8 17:40:19 1999 by Matthew Wilcox .\" add POSIX.1b signals .\" Modified Sat Dec 29 01:44:52 2001 by Evan Jones .\" SA_ONSTACK .\" Modified 2004-11-11 by Michael Kerrisk .\" Added mention of SIGCONT under SA_NOCLDSTOP .\" Added SA_NOCLDWAIT .\" Modified 2004-11-17 by Michael Kerrisk .\" Updated discussion for POSIX.1-2001 and SIGCHLD and sa_flags. .\" Formatting fixes .\" 2004-12-09, mtk, added SI_TKILL + other minor changes .\" 2005-09-15, mtk, split sigpending(), sigprocmask(), sigsuspend() .\" out of this page into separate pages. .\" 2010-06-11 Andi Kleen, add hwpoison signal extensions .\" 2010-06-11 mtk, improvements to discussion of various siginfo_t fields. .\" 2015-01-17, Kees Cook .\" Added notes on ptrace SIGTRAP and SYS_SECCOMP. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SIGACTION 2 "21 december 2020" Linux "Linux Programmeurs Handleiding" .SH NAAM sigaction, rt_sigaction \- onderzoek en verander een signaal actie .SH SAMENVATTING .nf \fB#include \fP .PP \fBint sigaction(int \fP\fIsignum\fP\fB, const struct sigaction *\fP\fIact\fP\fB,\fP \fB struct sigaction *\fP\fIoudeact\fP\fB);\fP .fi .PP .RS -4 Feature Test Macro´s eisen in glibc (zie \fBfeature_test_macros\fP(7)): .RE .PP .ad l \fBsigaction\fP(): _POSIX_C_SOURCE .PP \fIsiginfo_t\fP: _POSIX_C_SOURCE >= 199309L .ad b .SH BESCHRIJVING De \fBsigaction\fP() systeem aanroep wordt gebruikt om de te nemen actie door een proces bij ontvangst van een signaal te veranderen. (Zie \fBsignal\fP(7) voor een overzicht van de signalen.) .PP \fIsignum\fP bepaald het signaal en kan elk geldig signaal zijn behalve \fBSIGKILL\fP en \fBSIGSTOP\fP. .PP Als \fIact\fP on\-gelijk nul is wordt de nieuwe actie voor het signaal \fIsignum\fP geïnstalleerd van \fIact\fP. Als \fIoudeact\fP niet\-nul is, dan wordt de vorige actie bewaard in \fIoudeact\fP. .PP De \fIsigaction\fP structuur is bepaald als .PP .in +4n .EX struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); }; .EE .in .PP Op sommige architecturen wordt een union gebruikt: ken niet aan beiden \fIsa_handler\fP en \fIsa_sigaction\fP toe .PP Het \fIsa_restorer\fP veld is is niet bedoeld voor gebruik in applicaties. (POSIX specificeert het \fIsa_restorer\fP veld niet.) Meer details over het doel van dit veld kunnen worden gevonden in \fBsigreturn\fP(2) .PP \fIsa_handler\fP specificeert de actie die wordt geassocieerd met \fIsignum\fP en dat is een van de volgende: .IP * 2 \fBSIG_DFL\fP voor de standaard actie. .IP * \fBSIG_IGN\fP om dit signaal te negeren. .IP * Een wijzen naar een signaal afhandel functie. Deze functie ontvangt het signaal nummer als zijn enige argument. .PP Als \fBSA_SIGINFO\fP werd opgegeven in \fIsa_flags\fP dan specificeert \fIsa_sigaction\fP (in plaats van \fIsa_handler\fP) de signaal afhandel functie voor \fIsignum\fP. Deze functie ontvangt drie argumenten zoals hieronder beschreven. .PP \fIsa_mask\fP specificeert een masker voor signalen die geblokkeerd zouden moeten worden (dat is, toegevoegd aan een signaal masker van de thread in welke de signaal afhandelaar wordt aangeroepen) tijdens de uitvoering van de signaal afhandelaar. In toevoeging daarop zal het signaal dat de behandelaar af liet gaan geblokkeerd worden, tenzij de \fBSA_NODEFER\fP vlag werd gebruikt. .PP \fIsa_flags\fP geeft een aantal vlaggen op die het gedrag van het signaal behandelings proces aanpassen. Het wordt gevormd door de bitsgewijze OF van nul of meer van het volgende: .TP \fBSA_NOCLDSTOP\fP Als \fIsignum\fP \fBSIGCHLD\fP is, ontvang geen bericht wanneer kind processen stoppen (dat is, wanneer deze een van \fBSIGSTOP\fP, \fBSIGTSTP\fP, \fBSIGTTIN\fP of \fBSIGTTOU\fP ontvangen) of ga door (dat is, ze ontvangen \fBSIGCONT\fP) (zie \fBwait\fP(2)). Deze vlag is alleen van betekenis bij het inrichten van een afhandelaar voor \fBSIGCHLD\fP. .TP \fBSA_NOCLDWAIT\fP (sinds Linux 2.6) .\" To be precise: Linux 2.5.60 -- MTK Als \fIsignum\fP gelijk is aan \fBSIGCHLD\fP transformeer dan kinderen niet in zombies wanneer zij eindigen. Zie ook \fBwaitpid\fP(2). Deze vlag is alleen van betekenis bij het inrichten van een afhandelaar voor \fBSIGCHLD\fP, of bij het zetten van een signaal dispositie op \fBSIG_DFL\fP. .IP Als de \fBSA_NOCLDWAIT\fP vlag werd gezet bij het inrichten van een afhandelaar voor \fBSIGCHLD\fP, dan laat POSIX.1 het ongespecificeerd of een \fBSIGCHLD\fP signaal wordt gegenereerd zodra een kind proces eindigt. Op Linux, wordt een \fBSIGCHLD\fP in dit geval gegenereerd; op sommige andere implementaties is dit niet het geval . .TP \fBSA_NODEFER\fP Voeg geen signaal toe aan het thread signaal masker terwijl de afhandelaar wordt uitgevoerd, behalve als het signaal werd opgegeven in \fIact.sa_mask\fP. Bijgevolg mag een volgende instantie van het signaal worden afgeleverd bij de thread terwijl deze de afhandelaar uitvoert. Deze vlag is alleen van betekenis bij het inrichten van de signaal afhandelaar. .IP \fBSA_NOMASK\fP is een overbodig, niet\-standaard synoniem voor deze vlag. .TP \fBSA_ONSTACK\fP Roep de signaal afhandelaar aan op een alternatieve stack voorzien door \fBsignalstack\fP(2). Indien een alternatieve stack niet beschikbaar is, dan wordt de standaard stack gebruikt. Deze vlag is alleen van betekenis bij het inrichten van een signaal afhandelaar. .TP \fBSA_RESETHAND\fP Herstel de signaal actie naar de standaard bij het binnengaan in de signaal afhandelaar. Deze vlag is alleen van betekenis bij het inrichten van een signaal afhandelaar. .IP \fBSA_ONESHOT\fP is een verouderd, niet\-standaard synoniem voor deze vlag. .TP \fBSA_RESTART\fP Voorzie in gedrag overeenkomend met BSD signaal\-semantiek bij het herstartbaar maken langs signalen van bepaalde systeem aanroepen. Deze vlag heeft alleen betekenis bij het inrichten van een signaal afhandelaar. Zie \fBsignal\fP(7) voor een discussie over het herstarten van een systeem aanroep. .TP \fBSA_RESTORER\fP \fINot intended for application use\fP. Deze vlag wordt gebruikt door C bibliotheken om aan te geven dat het \fIsa_restorer\fP veld het adres van een "signaal trampoline" bevat. Zie \fBsigreturn\fP(2) voor meer details. .TP \fBSA_SIGINFO\fP (sinds Linux 2.2) .\" (The .\" .I sa_sigaction .\" field was added in Linux 2.1.86.) .\" De signaal afhandelaar neemt drie argumenten, niet een. In dit geval zou \fIsa_sigaction\fP gezet moeten zijn in plaats van \fIsa_handler\fP. Deze vlaggen is alleen van betekenis bij het inrichten van een signaal afhandelaar. .SS "Het siginfo_t argument voor een SA_SIGINFO afhandelaar" Indien de \fBSA_SIGINFO\fP vlag werd gespecificeerd in \fIact.sa_flags\fP dan wordt het adres van de afhandelaar doorgegeven via het \fIact.sa_sigaction\fP veld. Deze afhandelaar heeft drie argumenten, die zijn als volgt: .PP .in +4n .EX void handler(int sig, siginfo_t *info, void *ucontext) { ... } .EE .in .PP Deze drie argumenten zijn als volgt .TP \fIsig\fP Het nummer van het signaal de de aanroep van de afhandelaar veroorzaakte. .TP \fIinfo\fP Een wijzer naar een \fIsiginfo_t\fP, hetgeen een structure is die verdere informatie bevat over het hieronder beschreven signaal. .TP \fIucontext\fP Dit is een wijzer naar een \fIucontext_t\fP structure, cast naar \fIvoid\ *\fP. De structure aangewezen door dit veld bevat signaal context informatie die werd bewaard in de gebruikers\-stack door de kernel; zie \fBsigreturn\fP(2) voor details. Verdere informatie over de \fIucontext_t\fP structure kan worden gevonden in \fBgetcontext\fP(3) en \fBsignal\fP(7). In het algemeen maakt de afhandelaar functie geen gebruik van het derde argument. .PP Het \fIsiginfo_t\fP data type is een structure met de volgende velden: .PP .in +4n .EX .\" FIXME .\" The siginfo_t 'si_trapno' field seems to be used .\" only on SPARC and Alpha; this page could use .\" a little more detail on its purpose there. .\" In the kernel: si_tid siginfo_t { int si_signo; /* Signaal nummer */ int si_errno; /* Een fout waarde */ int si_code; /* Signaal code */ int si_trapno; /* Trap nummer dat het hardware\-gegenereerde signaal veroorzaakte (ongebruikt op de meeste architecturen) */ pid_t si_pid; /* proces ID van de zender*/ uid_t si_uid; /* Huidig UID van zendende proces */ int si_status; /* Exit waarde of signaal */ clock_t si_utime; /* Gebruikte User tijd */ clock_t si_stime; /* Gebruikte Systeem tijd */ union sigval si_value; /* Signaal waarde */ int si_int; /* POSIX.1b signal */ void *si_ptr; /* POSIX.1b signal */ int si_overrun; /* Timer overrun teller; POSIX.1b timers */ int si_timerid; /* Timer ID; POSIX.1b timers */ void *si_addr; /* Geheugen locatie die fout veroorzaakte */ long si_band; /* Band gebeurtenis (was \fIint\fP in glibc 2.3.2 en eerder) */ int si_fd; /* Bestandsindicator */ short si_addr_lsb; /* Minst significant bit van adres (vanaf Linux 2.6.32) */ void *si_lower; /* Laagste grens bij adres schending occurred (vanaf Linux 3.19) */ void *si_upper; /* Hoogste grens bij adres schending occurred (vanaf Linux 3.19) */ int si_pkey; /* Beveiliging sleutel op PTE die fout veroorzaakte (vanaf Linux 4.6) */ void *si_call_addr; /* Addres van de systeem aanroep instructie (vanaf Linux 3.5) */ int si_syscall; /* Aantal geprobeerde systeem aanroepen (vanaf Linux 3.5) */ unsigned int si_arch; /* Architecture van geprobeerde systeem aanroep (vanaf Linux 3.5) */ } .EE .in .PP \fIsi_signo\fP, \fIsi_errno\fP en \fIsi_code\fP zijn gedefinieerd voor alle signalen. (\fIsi_errno\fP wordt in het algemeen niet gebruikt op Linux.) De rest van de structure mag een union zijn, zodat men alleen die velden moet lezen die van betekenis zijn voor het gegeven signaal: .IP * 2 Signalen verzonden met \fBkill\fP(2) en \fBsigqueue\fP(3) vullen \fIsi_pid\fP en\fIsi_uid\fP in. Daarnaast vullen signalen verzonden met \fBsigqueue\fP(3) \fIsi_int\fP en \fIsi_ptr\fP in met de waarden opgegeven door de afzender van het signaal; zie \fBsigqueue\fP(3) voor meer details. .IP * Signalen verzonden door POSIX.1b timers (vanaf Linux 2.6) vullen \fIsi_overrun\fP en \fIsi_timerid\fP in. Het \fIsi_timerid\fP veld is een intern ID dat gebruikt wordt door de kernel om de timer te identificeren; dit is niet dezelfde als de timer ID die geretourneerd wordt door \fBtimer_create\fP(2). Het \fIsi_overrun\fP veld is de overloop teler; dit is dezelfde informatie die wordt verkregen door een aanroep van \fBtimer_getoverrun\fP(2). Deze velden zijn niet standaard Linux uitbreidingen. .IP * Signalen verzonden voor berichten rij notificatie (zie de beschrijving van \fBSIGEV_SIGNAL\fP in \fBmq_notify\fP(3)) vul \fIsi_int\fP/\fIsi_ptr\fP in, met de \fIsigev_value\fP geleverd aan \fBmq_notify\fP(3); \fIsi_pid\fP, met de proces ID van de berichten afzender; en \fIsi_uid\fP, met het echte gebruiker ID van de berichten afzender. .IP * .\" FIXME . .\" When si_utime and si_stime where originally implemented, the .\" measurement unit was HZ, which was the same as clock ticks .\" (sysconf(_SC_CLK_TCK)). In 2.6, HZ became configurable, and .\" was *still* used as the unit to return the info these fields, .\" with the result that the field values depended on the .\" configured HZ. Of course, the should have been measured in .\" USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to .\" convert to seconds. I have a queued patch to fix this: .\" http://thread.gmane.org/gmane.linux.kernel/698061/ . .\" This patch made it into 2.6.27. .\" But note that these fields still don't return the times of .\" waited-for children (as is done by getrusage() and times() .\" and wait4()). Solaris 8 does include child times. \fBSIGCHLD\fP vult \fIsi_pid\fP, \fIsi_uid\fP, \fIsi_status\fP, \fIsi_utime\fP en \fIsi_stime\fP in, informatie gevend over het kind. Het \fIsi_pid\fP veld is het proces ID van het kind; \fIsi_uid\fP is het echte gebruikers ID van het kind. Het \fIsi_status\fP veld bevat de eind status van het kind (als \fIsi_code\fP gelijk is aan \fBCLD_EXITED\fP) of het signaal nummer dat de status verandering van het proces veroorzaakte. De \fIsi_utime\fP en \fIsi_stime\fP bevatten het gebruiker\- en systeem CPU tijd gebruikt door het kind proces; deze velden bevatten niet de tijden gebruikt door het wachten\-op kinderen (anders dan \fBgetrusage\fP(2) en \fBtimes\fP(2)). In kernels tot en met 2.6 en vanaf 2.6.27 rapporteren deze velden CPU tijd in eenheden van \fIsysconf(_SC_CLK_TCK)\fP. In 2.6 kernels voor 2.6.27 zorgde een bug ervoor dat deze velden tijden rapporteerde in eenheden van de (configureerbare) systeem jiffy (zie \fBtime\fP(7)). .IP * \fBSIGILL\fP, \fBSIGFPE\fP, \fBSIGSEGV\fP, \fBSIGBUS\fP, en \fBSIGTRAP\fP vullen\fIsi_addr\fP in met het adres van de fout. Op sommige architecturen, vullen deze signalen ook het \fIsi_trapno\fP veld in. .IP Sommige sub\-fouten van \fBSIGBUS\fP, in het bijzonder \fBBUS_MCEERR_AO\fP en \fBBUS_MCEERR_AR\fP, vullen ook \fIsi_addr_lsb\fP in. Dit veld geeft het minst significante bit aan van het gerapporteerde adres en daarmee de omvang van de corruptie. Bij voorbeeld als een complete pagina werd gecorrumpeerd van bevat \fIsi_addr_lsb\fP \fIlog2(sysconf(_SC_PAGESIZE))\fP. Wanneer \fBSIGTRAP\fP werd afgeleverd als antwoord op een \fBptrace\fP(2) gebeurtenis (PTRACE_EVENT_foo) dan wordt \fIsi_addr\fP niet beschreven, maar worden \fIsi_pid\fP en \fIsi_uid\fP beschreven met respectievelijk het proces ID en gebruikers ID verantwoordelijk voor het leveren van de valkuil. In het geval van \fBseccomp\fP(2) zal de gevolgde die de gebeurtenis geleverd heeft worden getoond. \fBBUS_MCEERR_*\fP en \fIsi_addr_lsb\fP zijn Linux\-specifieke uitbreidingen. .IP De \fBSEGV_BNDERR\fP sub\-fout van \fBSIGSEGV\fP vult \fIsi_lower\fP en \fIsi_upper\fP. .IP De \fBSEGV_PKUERR\fP sub\-fout van \fBSIGSEGV\fP vult \fIsi_pkey\fP. .IP * \fBSIGIO\fP/\fBSIGPOLL\fP (de twee namen zijn synoniemen op Linux) vullen \fIsi_band\fP en \fIsi_fd\fP in. De \fIsi_band\fP gebeurtenis is een bit masker dat dezelfde waarden bevat zoals ingevuld in het \fIrevents\fP veld door \fBpoll\fP(2). Het \fIsi_fd\fP veld geeft de bestandsindicator voor welke de Invoer/Uitvoer gebeurtenis optrad; zie voor verdere details de beschrijving van \fBF_SETSIG\fP in \fBfcntl\fP(2). .IP * .\" commit a0727e8ce513fe6890416da960181ceb10fbfae6 .\" \fBSIGSYS\fP wordt gegenereerd (vanaf Linux 3.5) zodra een seccomp filter \fBSECCOMP_RET_TRAP\fP terugkeert, en vult \fIsi_call_addr\fP, \fIsi_syscall\fP, \fIsi_arch\fP, \fIsi_errno\fP in, en andere velden zoals beschreven in \fBseccomp\fP(2). .SS "Het si_code veld" Het \fIsi_code\fP veld in het \fIsiginfo_t\fP argument, dat wordt doorgegeven naar een \fBSA_SIGINFO\fP signaal afhandelaar, is een waarde (geen bit masker) die aangeeft waarom dit signaal werd verstuurd. Voor een \fBptrace\fP(2) gebeurtenis zal \fIsi_code\fP \fBSIGTRAP\fP bevatten en heeft een ptrace gebeurtenis in het hoge byte: .PP .in +4n .EX (SIGTRAP | PTRACE_EVENT_foo << 8). .EE .in .PP Voor een niet\-\fBptrace\fP gebeurtenis, worden de waarden die kunnen verschijnen in \fIsi_code\fP beschreven in het vervolg van deze sectie. Vanaf glibc 2.20 worden de definities van de meeste symbolen verkregen uit \fI\fP door het definiëren van feature test macro´s (vóór het invoegen van \fIenig\fP header bestand) als volgt: .IP * 3 \fB_XOPEN_SOURCE\fP met een waarde van 500 of groter; .IP * \fB_XOPEN_SOURCE\fP en \fB_XOPEN_SOURCE_EXTENDED\fP; of .IP * \fB_POSIX_C_SOURCE\fP met een waarde van 200809L of groter. .PP Voor de \fBTRAP_*\fP constanten worden de symbool definities alleen in de eerste twee gevallen voorzien. Voor glibc 2.20 werden geen feature test macro´s vereist om deze symbolen te verkrijgen. .PP Voor een regulier signaal toont de volgende lijst de waarden die kunnen worden geplaatst in \fIsi_code\fP voor elk signaal, samen met de reden waarom dat signaal werd gegenereerd. .RS 4 .TP \fBSI_USER\fP \fBkill\fP(2). .TP \fBSI_KERNEL\fP Verzonden door de kernel. .TP \fBSI_QUEUE\fP \fBsigqueue\fP(3). .TP \fBSI_TIMER\fP POSIX timer liep af. .TP \fBSI_MESGQ\fP (sinds Linux 2.6.6) POSIX berichten rij toestand veranderde; zie \fBmq_notify\fP(3). .TP \fBSI_ASYNCIO\fP AIO voltooid. .TP \fBSI_SIGIO\fP \fBSIGIO\fP in wachtrij (alleen in kernels tot en met Linux 2.2: vanaf Linux 2.4 vult \fBSIGIO\fP/\fBSIGPOLL\fP \fIsi_code\fP in zoals hieronder beschreven). .TP \fBSI_TKILL\fP (vanaf Linux 2.4.19) .\" SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented .\" It appears to have been an idea that was tried during 2.5.6 .\" through to 2.5.24 and then was backed out. \fBtkill\fP(2) of \fBtgkill\fP(2). .RE .PP De volgende waarden kunnen worden geplaatst in \fIsi_code\fP voor een \fBSIGILL\fP signaal: .RS 4 .TP \fBILL_ILLOPC\fP Ongeldige opcode. .TP \fBILL_ILLOPN\fP Ongeldige operand. .TP \fBILL_ILLADR\fP Ongeldige adresseer "mode". .TP \fBILL_ILLTRP\fP Ongeldige valkuil. .TP \fBILL_PRVOPC\fP Geprivilegieerde opcode. .TP \fBILL_PRVREG\fP Geprivilegieerd register. .TP \fBILL_COPROC\fP Hulpprocessor fout. .TP \fBILL_BADSTK\fP Inwendige stapel fout. .RE .PP De volgende waarden kunnen worden geplaatst in \fIsi_code\fP voor een \fBSIGFPE\fP signaal: .RS 4 .TP \fBFPE_INTDIV\fP Geheel getal delen door nul. .TP \fBFPE_INTOVF\fP Geheel getal overloop. .TP \fBFPE_FLTDIV\fP Drijvende komma deel door nul. .TP \fBFPE_FLTOVF\fP Drijvende komma overloop. .TP \fBFPE_FLTUND\fP Drijvende komma onderloop. .TP \fBFPE_FLTRES\fP Drijvende komma onprecies antwoord. .TP \fBFPE_FLTINV\fP Drijvende komma ongeldige operatie. .TP \fBFPE_FLTSUB\fP Index buiten bereik. .RE .PP De volgende waarden kunnen worden geplaatst in \fIsi_code\fP voor een \fBSIGSEGV\fP signaal: .RS 4 .TP \fBSEGV_MAPERR\fP Adres niet verbonden met object. .TP \fBSEGV_ACCERR\fP Ongeldige toestemmingen voor "mapped" object. .TP \fBSEGV_BNDERR\fP (sinds Linux 3.19) .\" commit ee1b58d36aa1b5a79eaba11f5c3633c88231da83 Gefaalde adresgrenzen controles. .TP \fBSEGV_PKUERR\fP (sinds Linux 4.6) .\" commit cd0ea35ff5511cde299a61c21a95889b4a71464e Toegang werd geweigerd voor geheugen bescherming sleutels. Zie \fBpkeys\fP(7). de bescherming sleutel die van toepassing was op deze toegang is beschikbaar via \fIsi_pkey\fP. .RE .PP De volgende waarden kunnen worden geplaatst in \fIsi_code\fP voor een \fBSIGBUS\fP signaal: .RS 4 .TP \fBBUS_ADRALN\fP Ongeldige adres oplijning. .TP \fBBUS_ADRERR\fP Niet bestaand fysiek adres. .TP \fBBUS_OBJERR\fP Object\-eigen "hardware" fout. .TP \fBBUS_MCEERR_AR\fP (sinds Linux 2.6.32) Hardware geheugen fout verwerkt bij een machine controle; actie vereist. .TP \fBBUS_MCEERR_AO\fP (sinds Linux 2.6.32) Hardware geheugen fout gedetecteerd in een proces maar niet verwerkt; actie is optioneel. .RE .PP De volgende waarden kunnen worden geplaatst in \fIsi_code\fP voor een \fBSIGTRAP\fP signaal: .RS 4 .TP \fBTRAP_BRKPT\fP Proces breekpunt. .TP \fBTRAP_TRACE\fP Proces volgpunt valkuil. .TP \fBTRAP_BRANCH\fP (vanaf Linux 2.4, IA64 only) Genomen proces aftak valkuil. .TP \fBTRAP_HWBKPT\fP (vanaf Linux 2.4, IA64 only) Hardware breekpunt/watchpoint. .RE .PP De volgende waarden kunnen worden geplaatste in \fIsi_code\fP voor een \fBSIGCHLD\fP signaal: .RS 4 .TP \fBCLD_EXITED\fP Kind is beëindigd. .TP \fBCLD_KILLED\fP Kind was vermoord. .TP \fBCLD_DUMPED\fP Kind eindigde abnormaal. .TP \fBCLD_TRAPPED\fP Gevolgd kind viel in valkuil. .TP \fBCLD_STOPPED\fP Kind is gestopt. .TP \fBCLD_CONTINUED\fP (sinds Linux 2.6.9) Gestopt kind is doorgegaan. .RE .PP De volgende waarden kunnen worden gezet in \fIsi_code\fP voor een \fBSIGIO\fP/\fBSIGPOLL\fP signaal: .RS 4 .TP \fBPOLL_IN\fP Gegevens invoer beschikbaar. .TP \fBPOLL_OUT\fP Uitvoer buffers beschikbaar. .TP \fBPOLL_MSG\fP Invoer bericht beschikbaar. .TP \fBPOLL_ERR\fP In/uit fout. .TP \fBPOLL_PRI\fP Hoge prioriteit invoer beschikbaar. .TP \fBPOLL_HUP\fP Apparaat los gemaakt. .RE .PP De volgende waarde kan worden geplaatst in \fIsi_code\fP voor een \fBSIGSYS\fP signaal: .RS 4 .TP \fBSYS_SECCOMP\fP (sinds Linux 3.5) Getriggerd door een \fBseccomp\fP(2) filter regel .RE .SH "EIND WAARDE" Bij succes geeft \fBsigaction\fP() nul terug. Bij falen wordt \-1 teruggegeven en wordt \fIerrno\fP naar behoren gezet. .SH FOUTEN .TP \fBEFAULT\fP \fIact\fP of \fIoudeact\fP wijzen naar geheugen dat niet een geldig onderdeel van de proces adres ruimte is. .TP \fBEINVAL\fP Een ongeldig signaal werd opgegeven. Dit zal ook voortgebracht worden als een poging wordt gedaan om de actie voor \fBSIGKILL\fP of \fBSIGSTOP\fP te veranderen, die niet gevangen kunnen worden. .SH "VOLDOET AAN" .\" SVr4 does not document the EINTR condition. POSIX.1\-2001, POSIX.1\-2008, SVr4. .SH OPMERKINGEN Een kind aangemaakt met \fBfork\fP(2) erft een kopie van de signaal dispositie van zijn ouder. Tijdens een \fBexeccve\fP(2) worden de disposities van de afgehandelde signalen terug gezet naar de standaard; de dispositie van de genegeerde signalen blijft onveranderd. .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 POSIX.1\-1990 stond niet toe om de actie voor \fBSIGCHLD\fP op \fBSIG_IGN\fP te zetten. POSIX.1\-2001 en later stond dit toe, zodat het negeren van \fBSIGCHLD\fP kan worden gebruikt om zombies aan te maken (zie \fBwait\fP(2)). Desalniettemin verschillen de historische BSD en System\ V gedragingen voor negeren van \fBSIGCHLD\fP, daarom is de enige compleet overdraagbare methode om te voorkomen dat beëindigde kinderen zombies worden om signaal \fBSIGCHLD\fP op te vangen en het uitvoeren van een \fBwait\fP(2) of vergelijkbaar. .PP POSIX.1\-1990 specificeerde alleen \fBSA_NOCLDSTOP\fP. POSIX.1\-2001 voegde \fBSA_NOCLDSTOP\fP, \fBSA_NOCLDWAIT\fP, \fBSA_NODEFER\fP, \fBSA_ONSTACK\fP, \fBSA_RESETHAND\fP, \fBSA_RESTART\fP, en \fBSA_SIGINFO\fP toe. Het gebruik van de laatste waarden in \fIsa_flags\fPis mogelijk minder overdraagbaar in applicaties die bedoeld zijn voor oudere UNIX implementaties. .PP De \fBSA_RESETHAND\fP vlag is overdraagbaar met de SVr4 vlag met dezelfde naam. .PP De \fBSA_NODEFER\fP vlag is compatibel met de SVr4 vlag met dezelfde naam onder kernels 1.3.9 en nieuwer. Op oudere kernels liet de Linux\-implementatie het ontvangen van elk signaal toe, niet alleen dat dat we installeren (daarbij de \fIsa_mask\fP instelling overschrijvend). .PP \fBsigaction\fP() kan aangeroepen worden met een tweede argument nul om de huidige signaalbehandelaar te ondervragen. Het kan ook gebruikt worden om te testen of een gegeven signaal geldig is voor de huidige machine, door het aan te roepen met 'nul' tweede en derde argumenten. .PP Het is niet mogelijk om \fBSIGKILL\fP of \fBSIGSTOP\fP te blokkeren door opgeven in \fIsa_mask\fP. Pogingen om dat te doen zullen stilzwijgend genegeerd worden. .PP Ze \fBsigsetops\fP(3) voor details hoe signaal verzamelingen te manipuleren. .PP .\" Zie \fBsignal\-safety\fP(7) voor een lijst van de async\-signal\-safe functies die veilig gebruikt kunnen worden binnen een signaal afhandelaar. .SS "C library/kernel verschillen" De glibc omwikkel functie voor \fBsigaction\fP() meldt een fout (\fBEINVAL\fP) bij pogingen om de dispositie te veranderen van de twee realtime signalen die intern worden gebruikt door de NPTL threading implementatie. Zie \fBnptl\fP(7) voor details. .PP Op architecturen waar de signaal trampoline zich in de C bibliotheek bevindt, plaatst de glibc omwikkel functie voor \fBsigaction\fP() het adres van de trampoline code in het \fIact.sa_restorer\fP veld en zet de \fBSA_RESTORER\fP vlag in het \fIact.sa_flags\fP veld. Zie \fBsigreturn\fP(2). .PP .\" De originele Linux systeem aanroep was \fBsigaction\fP(). Echter met het toevoegen van realtime signalen in Linux 2.2 was het vaste\-grootte 32\-bit \fIsigset_t\fP type ondersteund door die systeem aanroep niet meer geschikt voor dit doel. Daarom werd de nieuwe systeem aanroep \fBrt_sigaction\fP() toegevoegd om een groter \fIsigset_t\fP type te ondersteunen. De nieuwe systeem aanroep benodigd een vierde argument, \fIsize_t sigsetsize\fP, die de grootte in bytes bepaald van de signaal verzamelingen in \fIact.sa_mask\fP en \fIoudeact.sa_mask\fP. Dit argument vereist momenteel de waarde \fIsizeof(sigset_t)\fP (of de fout \fBEINVAL\fP waarde). De glibc \fBsigaction\fP() omwikkel functie verbergt deze details voor ons, door transparant \fBrt_sigaction\fP() aan te roepen wanneer de kernel daarin voorziet. .SS "Niet gedocumenteerd" Voor de introductie van \fBSA_SIGINFO\fP, was het ook mogelijk om enige additionele informatie over het signaal te verkrijgen. Dit werd gedaan door het voorzien een \fIsa_handler\fP signaal afhandelaar met een tweede argument van het type \fIstruct sigcontext\fP, hetgeen dezelfde structure is als die die wordt doorgegeven in het \fIuc_mcontext\fP veld van de \fIucontext\fP structure die wordt doorgegeven (via een wijzer) in het derde argument van de \fIsa_sigaction\fP afhandelaar. Zie de relevante Linux kernel bronnen voor details. Dit gebruik is nu overbodig. .SH BUGS Tijdens het afleveren van een signaal met een \fBSA_SIGINFO\fP afhandelaar, voorziet de kernel niet altijd in betekenisvolle waarden voor alle velden in de \fIsiginfo_t\fP die relevant zijn voor dat signaal. .PP .\" commit 69be8f189653cd81aae5a74e26615b12871bb72e In kernels tot en met 2.6.13 voorkomt het opgeven van \fBSA_NODEFER\fP in \fIsa_flags\fP dat het afgeleverde signaal wordt gemaskeerd tijdens het uitvoeren van de afhandelaar, maar ook voor de signalen opgegeven in \fIsa_mask\fP. Deze bug werd opgelost in kernel 2.6.14. .SH VOORBEELDEN Zie \fBmprotect\fP(2). .SH "ZIE OOK" \fBkill\fP(1), \fBkill\fP(2), \fBpause\fP(2), \fBpidfd_send_signal\fP(2), \fBrestart_syscall\fP(2), \fBseccomp\fP(2), \fBsigaltstack\fP(2), \fBsignal\fP(2), \fBsignalfd\fP(2), \fBsigpending\fP(2), \fBsigprocmask\fP(2), \fBsigreturn\fP(2), \fBsigsuspend\fP(2), \fBwait\fP(2), \fBkillpg\fP(3), \fBraise\fP(3), \fBsiginterrupt\fP(3), \fBsigqueue\fP(3), \fBsigsetops\fP(3), \fBsigvec\fP(3), \fBcore\fP(5), \fBsignal\fP(7) .SH COLOFON Deze pagina is onderdeel van release 5.10 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. .PP .SH VERTALING De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema , Mario Blättermann en Luc Castermans . .PP 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. .PP Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar .MT debian-l10n-dutch@lists.debian.org .ME .