setjmp − sichere Stack-Zusammenhang für nichtlokale Verzweigung
#include <setjmp.h>
int setjmp(jmp_buf env);
setjmp und longjmp(3) sind nützlich für die Behandlung von Fehlern und Unterbrechungen, die in einem low-level-Unterprogramm eines Programms auftreten. setjmp() sichert den Stack-Zusammenhang bzw. die Stack-Umgebung in env für spätere Benutzung durch longjmp(). Der Stack-Zusammenhang wird ungültig wenn die Funktion, die setjmp() aufgerufen hat, beendet wird.
Es wird 0 zurückgegeben, wenn sofort zurückgekehrt wird, und Nichtnull, wenn von longjmp() mit gesichertem Zusammenhang zurückgekehrt wird.
POSIX
POSIX spezifiziert nicht, ob der Signalzusammenhang gesichert werden soll oder nicht. Wenn Sichern der Signalmasken gewünscht wird, sollte sigsetjmp(3) benutzt werden. Die Verwendung von setjmp() bewirkt, dass Programme schwer zu verstehen und zu warten sind. Wenn möglich sollten Alternativen benutzt werden.