Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

setjmp - Marke für nicht lokale Sprünge setzen

&pagelevel(4)&pagelevel

Definition

#include <setjmp.h>

int setjmp(jmp_buf env);

setjmp ist nur zusammen mit der Funktion longjmp sinnvoll: Mit diesen Funktionen lassen sich nicht lokale Sprünge realisieren, d.h. Sprünge von einer beliebigen Funktion in eine andere, noch aktive Funktion.

setjmp speichert den aktuellen Programmzustand (Adresse im C-Laufzeitstack, Befehlszähler, Registerinhalte) in einem Feld vom Typ jmp_buf. Der Typ jmp_buf ist in <setjmp.h> definiert. Ein späterer longjmp-Aufruf richtet den von setjmp gespeicherten Programmzustand wieder ein und setzt die Programmausführung von diesem Zustand aus fort.

Eine ausführliche Beschreibung und Hinweise zu setjmp/longjmp finden Sie bei der Funktion longjmp.

Returnwert 

0

Normale Rückkehr, d.h. an die Stelle nach dem setjmp-Aufruf wurde nicht durch einen longjmp-Aufruf verzweigt.

 

!= 0

Wenn an die Stelle nach dem setjmp-Aufruf mit longjmp verzweigt wurde, und zwar das Argument wert von longjmp (falls wert gleich 0 ist, liefert setjmp 1).

Beispiel

siehe Beispiel bei longjmp

Siehe auch

longjmp, signal