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

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.
┌───────────────────────┬───────────────────────┬─────────┐
│ Schnittstelle │ Attribut │ Wert │
├───────────────────────┼───────────────────────┼─────────┤
│ 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)