Provided by: manpages-nl-dev_4.15.0-9_all bug

NAAM

       sigreturn, rt_sigreturn - keer terug uit signaal verwerker en maak de stapel schoon

SAMENVATTING

       int sigreturn(...);

BESCHRIJVING

       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).

       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 signreturn() aan.

       Deze  sigreturn()  aanroep  maakt alles ongedaan dat was gedaan\mveranderen van het proces
       signaal masker,  veranderen  van  signaal  stapel  (zie  signmalstack(2))\mom  de  signaal
       verwerker  aan  te  roepen. Gebruik makend van de informatie die eerder werd bewaard op de
       stack van de gebruikers-ruimte herstelt sigreturn() 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 .

EIND WAARDE

       sigreturn() keert nooit terug.

VOLDOET AAN

       Veel UNIX-achtige systemen hebben een sigreturn() 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.

OPMERKINGEN

       sigreturn()  bestaat  alleen om de implementatie van signaal verwerkers mogelijk te maken.
       Hij moet nooit direct aangeroepen worden. (Inderdaad, een eenvoudige sigreturn()  omwikkel
       functie  in  de GNU C-bibliotheek retourneert eenvoudigweg -1, met errno gezet op ENOSYS.)
       Details over de argumenten  (als  er  al  een  is)  meegegeven  aan  sigreturn()  variëren
       afhankelijk  van  de  architectuur.  (Op  sommige  architecturen,  zoals  de  x86-64 heeft
       sigreturn() 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.

       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 vdso(7) of in de C-bibliotheek. In het  laatste  geval
       informeert  de  bibliotheek sigaction(2) omwikkel functie de kernel over de locatie van de
       trampoline code door het plaatsen van het adres in het sa_restorer veld van  de  sigaction
       structure, en zet de SA_RESTORER vlag in het sa_flags veld.

       De  opgeslagen  proces context informatie wordt geplaatst in een ucontext_t structure (zie
       <sys/ucontext.h>).  Deze structure is zichtbaar in de  signaal  verwerker  als  het  derde
       argument van de verwerker zoals gevestigd door sigaction(2)  met de SA_SIGINFO vlag.

       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  sigreturn()  aan
       wanneer de verwerker terugkeert).

   C library/kernel verschillen
       De  originele  Linux  systeem  aanroep  heette  sigreturn().  Echter, na de toevoeging van
       echt-tijd  signalen  in  Linux  2.2,  werd  een  nieuwe  systeem  aanroep,  rt_sigreturn()
       toegevoegd  om  een  vergroot sigset_t type te ondersteunen. De GNU C bibliotheek verbergt
       deze details voor ons, daarbij transparant gebruikmakend  van  rt_sigreturn()  wanneer  de
       kernel hierin voorziet.

ZIE OOK

       kill(2), restart_syscall(2), sigaltstack(2), signal(2), getcontext(3), signal(7), vdso(7)

COLOFON

       Deze   pagina  is  onderdeel  van  release  5.13  van  het  Linux  man-pages-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.

VERTALING

       De   Nederlandse   vertaling   van  deze  handleiding  is  geschreven  door  Jos  Boersema
       <joshb@xs4all.nl>, Mario  Blättermann  <mario.blaettermann@gmail.com>  en  Luc  Castermans
       <luc.castermans@gmail.com>

       Deze  vertaling  is  vrije  documentatie;  lees  de  GNU  General Public License Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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
       ⟨debian-l10n-dutch@lists.debian.org⟩.