setjmpsetjmp

Salva lo stato corrente del programma.Saves the current state of the program.

SintassiSyntax

int setjmp(
   jmp_buf env
);

ParametriParameters

envenv
Variabile in cui è archiviato l'ambiente.Variable in which environment is stored.

Valore restituitoReturn Value

Restituisce 0 dopo aver salvato l'ambiente dello stack.Returns 0 after saving the stack environment. Se setjmp restituisce come risultato di una longjmp chiama, viene restituito il valore argomento del longjmp, o se il valore dell'argomento longjmp è 0, setjmp restituisce 1.If setjmp returns as a result of a longjmp call, it returns the value argument of longjmp, or if the value argument of longjmp is 0, setjmp returns 1. Non vi è restituzione di errori.There is no error return.

NoteRemarks

Il setjmp funzione Salva un ambiente dello stack che successivamente è possibile ripristinare, utilizzando longjmp.The setjmp function saves a stack environment, which you can subsequently restore, using longjmp. Se utilizzati insieme, setjmp e longjmp offrono un metodo per eseguire un non-local goto.When used together, setjmp and longjmp provide a way to execute a non-local goto. In genere vengono utilizzate per passare il controllo di esecuzione alla gestione degli errori o al codice di ripristino in una routine chiamata in precedenza senza utilizzare le convenzioni normali di chiamata o restituzione.They are typically used to pass execution control to error-handling or recovery code in a previously called routine without using the normal calling or return conventions.

Una chiamata a setjmp consente di salvare l'ambiente dello stack corrente in env.A call to setjmp saves the current stack environment in env. Una chiamata successiva a longjmp Ripristina l'ambiente salvato e restituisce il controllo al punto immediatamente successivo alla corrispondente setjmp chiamare.A subsequent call to longjmp restores the saved environment and returns control to the point just after the corresponding setjmp call. Tutte le variabili (eccetto le variabili di registro) accessibili al controllo di ricezione di routine contengono i valori che avevano al momento longjmp è stato chiamato.All variables (except register variables) accessible to the routine receiving control contain the values they had when longjmp was called.

Non è possibile utilizzare setjmp per passare dal codice nativo al codice gestito.It is not possible to use setjmp to jump from native to managed code.

Nota setjmp e longjmp non supportano la semantica degli oggetti C++.Note setjmp and longjmp do not support C++ object semantics. In programmi C++, utilizzare il meccanismo di gestione delle eccezioni C++.In C++ programs, use the C++ exception-handling mechanism.

Per altre informazioni, vedere Uso di setjmp e longjmp.For more information, see Using setjmp and longjmp.

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
setjmpsetjmp <setjmp.h><setjmp.h>

Per altre informazioni sulla compatibilità, vedere Compatibilità.For additional compatibility information, see Compatibility.

EsempioExample

Vedere l'esempio per _fpreset.See the example for _fpreset.

Vedere ancheSee also

Controllo di processi e ambienteProcess and Environment Control
longjmplongjmp
_setjmp3_setjmp3