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

BEZEICHNUNG

       setjmp - Stapelspeicher-Zusammenhang für nicht lokale Verzweigung sichern

ÜBERSICHT

       #include <setjmp.h>

       int setjmp(jmp_buf env);

       int sigsetjmp(sigjmp_buf env, int savesigs);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       setjmp(): siehe ANMERKUNGEN
       sigsetjmp(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE

BESCHREIBUNG

       setjmp()  und  longjmp(3)  sind nützlich für die Behandlung von Fehlern und Unterbrechungen, die in einem
       Unterprogramm niedriger Stufe eines Programms auftreten. setjmp() sichert den Stapelspeicher-Zusammenhang
       bzw.   die   Stapelspeicher-Umgebung   in   env   für   spätere   Benutzung   durch    longjmp(3).    Der
       Stapelspeicher-Zusammenhang wird ungültig, wenn die Funktion, die setjmp() aufgerufen hat, beendet wird.

       sigsetjmp()  ist  setjmp()  ähnlich.  Nur wenn savesigs nicht Null ist, wird die aktuelle Signalmaske des
       Prozesses in env gespeichert  und  wiederhergestellt,  wenn  später  mit  diesem  env  ein  siglongjmp(3)
       durchgeführt wird.

RÜCKGABEWERT

       setjmp()  und  sigsetjmp()  geben  0  zurück, falls sie sofort zurückkehren, und nicht Null, wenn sie von
       longjmp(3) oder siglongjmp(3) zurückkehren und den gesicherten Zusammenhang benutzen.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌───────────────────────┬───────────────────────┬─────────┐
       │ SchnittstelleAttributWert    │
       ├───────────────────────┼───────────────────────┼─────────┤
       │ setjmp(), sigsetjmp() │ Multithread-Fähigkeit │ MT-Safe │
       └───────────────────────┴───────────────────────┴─────────┘

KONFORM ZU

       setjmp(): POSIX.1-2001, POSIX.1-2008, C89, C99.

       sigsetjmp(): POSIX.1-2001, POSIX.1-2008.

ANMERKUNGEN

       POSIX spezifiziert nicht, ob setjmp() die Signalmaske sichern wird  (um  sie  später  während  longjmp(3)
       wieder  herzustellen).  In  System-V  wird es dies nicht tun. In 4.3BSD wird es dies tun und dort gibt es
       eine Funktion _setjmp, die es nicht tut.  Unter  Linux  mit  Glibc-Versionen  vor  2.19  folgte  setjmp()
       standardmäßig  dem  Verhalten  von  System  V,  aber  das  BSD-Verhalten  wird  bereitgestellt,  wenn das
       _BSD_SOURCE-Feature-Test-Macro definiert ist und  weder  _POSIX_SOURCE,  _POSIX_C_SOURCE,  _XOPEN_SOURCE,
       _XOPEN_SOURCE_EXTENDED,  _GNU_SOURCE  noch  _SVID_SOURCE definiert ist. Seit Glibc 2.19 stellt <setjmp.h>
       nur die System-V-Version von setjmp() bereit. Programme, die die BSD-Semantik benötigen, sollten  Aufrufe
       von  setjmp() durch Aufrufe von sigsetjmp(), bei denen das Argument savesigs ungleich numerisch Null ist,
       ersetzen.

       Falls Sie portable Signalmasken für das Speichern und Wiederherstellen möchten, benutzen Sie  sigsetjmp()
       und siglongjmp(3).

       setjmp()  und  sigsetjmp()  erschweren  das Verständnis und die Verwaltung von Programmen. Falls möglich,
       sollte eine Alternative benutzt werden.

SIEHE AUCH

       longjmp(3), siglongjmp(3)

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 Patrick Rother <krd@gulu.net> und Chris Leick
       <c.leick@vollbio.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>.

                                                 8. August 2015                                        SETJMP(3)