Provided by: manpages-de-dev_1.11-1_all bug

BEZEICHNUNG

       sigreturn, rt_sigreturn - Rückkehr vom Signal Handler und Aufräumen des Stacks

ÜBERSICHT

       int sigreturn(…);

BESCHREIBUNG

       If the Linux kernel determines that an unblocked signal is pending for a process, then, at
       the next transition back to user mode in that process (e.g., upon  return  from  a  system
       call  or when the process is rescheduled onto the CPU), it saves various pieces of process
       context (processor status word, registers, signal mask, and signal stack  settings)   into
       the user-space stack.

       The kernel also arranges that, during the transition back to user mode, the signal handler
       is called, and that, upon return from the handler, control passes to a piece of user-space
       code  commonly  called  the  "signal trampoline". The signal trampoline code in turn calls
       sigreturn().

       Dieser Aufruf von sigreturn() macht alle Aktionen für den Aufruf des Signal Handlers - die
       Änderung   der   Signalmaske   des   Prozesses,   Umschalten   der   Signal-Stacks  (siehe
       sigaltstack(2)) - rückgängig. Er stellt die Signalmaske des Prozesses wieder her, schaltet
       die  Stacks  um und stellt den Prozesskontext (Prozessor-Flags und -Register, darunter den
       Stack-Zeiger und den Instruktions-Zeiger) wieder her, so dass die Ausführung des Prozesses
       an dem Punkt fortgesetzt wird, wo er von dem Signal unterbrochen wurde.

RÜCKGABEWERT

       sigreturn() kehrt nie zurück.

KONFORM ZU

       Viele  UNIX-artige Systeme haben einen Systemaufruf sigreturn() oder etwas nah verwandtes.
       Allerdings wird  dieser  Aufruf  nicht  in  POSIX  spezifiziert  und  die  Details  seines
       Verhaltens unterscheiden sich von System zu System.

ANMERKUNGEN

       sigreturn()  existiert  nur, um Signal Handler für den Kernel zu implementieren. Es sollte
       niemals direkt aufgerufen werden. Details der an sigreturn() übergebenen Argumente  (falls
       vorhanden) variieren abhängig von der Architektur.

       Once  upon  a  time,  UNIX  systems placed the signal trampoline code onto the user stack.
       Nowadays, pages of the user stack are protected so as to disallow code execution. Thus, on
       contemporary  Linux  systems,  depending  on  the architecture, the signal trampoline code
       lives either in the vdso(7) or in the C  library.  In  the  latter  case,  the  C  library
       supplies  the location of the trampoline code using the sa_restorer field of the sigaction
       structure that is passed to sigaction(2), and sets the SA_RESTORER flag  in  the  sa_flags
       field.

       The   saved  process  context  information  is  placed  in  a  ucontext_t  structure  (see
       <sys/ucontext.h>). That structure is visible  within  the  signal  handler  as  the  third
       argument of a handler established with the SA_SIGINFO flag.

       On  some  other  UNIX systems, the operation of the signal trampoline differs a little. In
       particular, on some systems, upon transitioning back  to  user  mode,  the  kernel  passes
       control  to the trampoline (rather than the signal handler), and the trampoline code calls
       the signal handler (and then calls sigreturn()  once the handler returns).

   Unterschiede C-Bibliothek/Kernel
       Der ursprüngliche Systemaufruf hieß sigreturn(). Mit der Hinzunahme  von  Echtzeitsignalen
       in  Linux  2.2  wurde  allerdings  ein neuer Systemaufruf rt_sigreturn() zur Unterstützung
       eines vergrößerten Typs sigset_t hinzugefügt. Die GNU-C-Bibliothek versteckt diese Details
       und setzt rt_sigreturn() transparent ein, wenn der Kernel dies bereitstellt.

SIEHE AUCH

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

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  4.04  des  Projekts  Linux-man-pages. Eine
       Beschreibung des Projekts, Informationen, wie Fehler  gemeldet  werden  können  sowie  die
       aktuelle Version dieser Seite finden sich unter http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche  Übersetzung  dieser  Handbuchseite wurde von René Tschirley <gremlin@cs.tu-
       berlin.de>,    Martin    Schulze    <joey@infodrom.org>,    Martin    Eberhard     Schauer
       <Martin.E.Schauer@gmx.de>,  Mario  Blättermann  <mario.blaettermann@gmail.com>  und  Helge
       Kreutzmann <debian@helgefjell.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version   3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE  HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.