Freigeben über


setjmp

Rettet den aktuellen Zustand des Programms.

int setjmp(
   jmp_buf env 
);

Parameter

  • env
    Variable, in der die Umgebung gespeichert wird.

Rückgabewert

EINGABETASTE 0, wenn die Stapelumgebung gespeichert wurde. Wenn setjmp aufgrund eines Aufrufs longjmp zurückgibt, wird der value-Argument longjmp oder wenn das Argument value von longjmp 0 ist, setjmp gibt 1 zurück. zurück. Es gibt keine Fehlerrückgabe.

Hinweise

Die Funktion setjmp speichert eine Stapelumgebung, die Sie anschließend wiederherstellen können, mit longjmp. Wenn sie zusammen verwendet werden, führen setjmp und longjmp eine Methode, nicht lokalen goto auszuführen. Sie werden in der Regel verwendet, um dem Fehlerbehandlungs- Ablaufsteuerung oder Wiederherstellungscode zuvor in einer aufgerufenen Routine zu übergeben, ohne das normale Aufrufen oder die Rückholkonventionen zu verwenden.

Ein Aufruf setjmp speichert die aktuelle Stapelumgebung in env. Ein nachfolgender Aufruf longjmp wird die gespeicherte Umgebung und das Von zum Punkt direkt nach dem entsprechenden setjmp Aufruf zurückgesetzt. Alle Variablen (außer Registervariablen) zugänglich zum empfangenden RoutineSteuerelement enthalten die Werte, die sie aufwiesen, als longjmp aufgerufen wurde.

Es ist nicht möglich, setjmp verwenden, um aus systemeigenen an verwalteten Code zu springen.

Hinweis   setjmp und longjmp unterstützen keine C++-Objektsemantik. In C++-Programmen verwenden Sie den C++-Ausnahmebehandlungsmechanismus.

Weitere Informationen finden Sie unter Verwenden des setjmp und des longjmp.

Anforderungen

Routine

Erforderlicher Header

setjmp

<setjmp.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

Im Beispiel für _fpreset.

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Prozess- und Umgebungssteuerung

longjmp

_setjmp3