Provided by: manpages-nl-dev_4.27.0-1_all bug

NAAM

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

BIBLIOTHEEK

       Standard C bibliotheek  (libc, -lc)

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—veranderen van het  proces  signaal  masker,
       veranderen van signaal stapel (zie signmalstack(2))—om 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.

VERSIES

       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.

VOLDOET AAN

       Geen.

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)

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

Linux man-pagina's 6.9.1                           2 mei 2024                                       sigreturn(2)