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)