.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2008, 2014, Michael Kerrisk .\" .\" %%%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 .\" .\" Created Sat Aug 21 1995 Thomas K. Dyas .\" Modified Tue Oct 22 22:09:03 1996 by Eric S. Raymond .\" 2008-06-26, mtk, added some more detail on the work done by sigreturn() .\" 2014-12-05, mtk, rewrote all of the rest of the original page .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SIGRETURN 2 "15 september 2017" Linux "Linux Programmeurs Handleiding" .SH NAAM sigreturn, rt_sigreturn \- keer terug uit signaal verwerker en maak de stapel schoon .SH SAMENVATTING \fBint sigreturn(...);\fP .SH BESCHRIJVING .\" See arch/x86/kernel/signal.c::__setup_frame() [in 3.17 source code] Als de Linux kernel detecteert dat een niet\-geblokkeerd signaal in afwachting is van een proces, dan, zal bij de volgende overgang terug naar de gebruikers mode van dat process (b.v. bij terugkeer van een systeem aanroep of wanneer het proces werd verplaatst naar de CPU), het een nieuw frame aanmaken op de stapel van de gebruiker\-ruimte waarin het diverse onderdelen van de proces context bewaard (processor status woord, registers, signaal masker en signaal instellingen). .PP De kernel zorgt er ook voor dat bij de terugkeer naar de gebruikers mode, dat de signaal verwerker wordt aangeroepen, en dat, bij terugkeer uit de verwerker, de controle wordt doorgegeven naar een onderdeel van de gebruikers\-ruimte code, veelal aangeduid als "de signaal trampoline". De signaal trampoline code op zijn beurt roept \fBsignreturn\fP() aan. .PP Deze \fBsigreturn\fP() aanroep maakt alles ongedaan dat was gedaan\emveranderen van het proces signaal masker, veranderen van signaal stapel (zie \fBsignmalstack\fP(2))\emom de signaal verwerker aan te roepen. Gebruik makend van de informatie die eerder werd bewaard op de stack van de gebruikers\-ruimte herstelt \fBsigreturn\fP() het masker van het signaal van het proces, schakelt tussen stapels, en herstelt de processor context (processor vlaggen en registers, inclusief de stapel\- en instructie wijzers), zodat het proces de executie hervat vanaf het punt waar het werd onderbroken door het signaal . .SH "EIND WAARDE" \fBsigreturn\fP() keert nooit terug. .SH "VOLDOET AAN" Veel UNIX\-achtige systemen hebben een \fBsigreturn\fP() systeem aanroep of een bijna equivalent. Echter, deze aanroep is niet gespecificeerd in POSIX en details van zijn gedrag variëren van systeem tot systeem. .SH OPMERKINGEN .\" See sysdeps/unix/sysv/linux/sigreturn.c and .\" signal/sigreturn.c in the glibc source \fBsigreturn\fP() bestaat alleen om de implementatie van signaal verwerkers mogelijk te maken. Hij moet \fBnooit\fP direct aangeroepen worden. (Inderdaad, een eenvoudige \fBsigreturn\fP() omwikkel functie in de GNU C\-bibliotheek retourneert eenvoudigweg \-1, met \fIerrno\fP gezet op \fBENOSYS\fP.) Details over de argumenten (als er al een is) meegegeven aan \fBsigreturn\fP() variëren afhankelijk van de architectuur. (Op sommige architecturen, zoals de x86\-64 heeft \fBsigreturn\fP() geen argument, omdat alle benodigde informatie beschikbaar is op de stapel die eerder werd gecreëerd door de kernel op de stapel in de gebruikers\-ruimte. .PP .\" See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and .\" sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source. Ooit plaatsten UNIX systemen de code van de signaal trampoline op de gebruiker stapel. Tegenwoordig worden pagina´s van de gebruiker stapel beschermd tegen het uitvoeren van code. Op hedendaagse Linux systemen leeft daarom, afhankelijk van de architectuur, de signaal trampoline code ofwel in de \fBvdso\fP(7) of in de C\-bibliotheek. In het laatste geval informeert de bibliotheek \fBsigaction\fP(2) omwikkel functie de kernel over de locatie van de trampoline code door het plaatsen van het adres in het \fIsa_restorer\fP veld van de \fIsigaction\fP structure, en zet de \fBSA_RESTORER\fP vlag in het \fIsa_flags\fP veld. .PP De opgeslagen proces context informatie wordt geplaatst in een \fIucontext_t\fP structure (zie \fI\fP). Deze structure is zichtbaar in de signaal verwerker als het derde argument van de verwerker zoals gevestigd door \fBsigaction\fP(2) met de \fBSA_SIGINFO\fP vlag. .PP .\" Op een aantal andere UNIX systemen, verschilt de werking van de signaal trampoline een beetje. In het bijzonder, op sommige systemen zal de kernel bij de terugkeer uit gebruiker mode, de controle doorgeven naar de trampoline (in plaats van de signaal verwerker), en de trampoline code roept de signaal verwerker aan (en roept vervolgens \fBsigreturn\fP() aan wanneer de verwerker terugkeert). .SS "C library/kernel verschillen" .\" De originele Linux systeem aanroep heette \fBsigreturn\fP(). Echter, na de toevoeging van echt\-tijd signalen in Linux 2.2, werd een nieuwe systeem aanroep, \fBrt_sigreturn\fP() toegevoegd om een vergroot \fIsigset_t\fP type te ondersteunen. De GNU C bibliotheek verbergt deze details voor ons, daarbij transparant gebruikmakend van \fBrt_sigreturn\fP() wanneer de kernel hierin voorziet. .SH "ZIE OOK" \fBkill\fP(2), \fBrestart_syscall\fP(2), \fBsigaltstack\fP(2), \fBsignal\fP(2), \fBgetcontext\fP(3), \fBsignal\fP(7), \fBvdso\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. .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 .