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

Linux                                           28. Dezember 2015                                   SIGRETURN(2)