setjmpsetjmp

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

SintassiSyntax

int setjmp(  
   jmp_buf env   
);  

ParametriParameters

env
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 chiamata longjmp, restituisce l'argomento value di longjmp, o se l'argomento value di 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

La funzione setjmp 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. Quando setjmp e longjmp vengono utilizzate insieme, offrono un metodo per eseguire goto non in locale.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 salva l'ambiente corrente dello stack 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 chiamata setjmp.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 quando 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
setjmp <setjmp.h><setjmp.h>

Per altre informazioni sulla compatibilità, vedere la sezione Compatibilità nell'introduzione.For additional compatibility information, see Compatibility in the Introduction.

EsempioExample

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

Vedere ancheSee Also

Controllo processo e ambiente Process and Environment Control
longjmp longjmp
_setjmp3_setjmp3