setjmp
Salva lo stato corrente del programma.
int setjmp(
jmp_buf env
);
Parametri
- env
Variabile in cui viene archiviato l'ambiente.
Valore restituito
Restituisce 0 dopo aver salvato l'ambiente dello stack. Se setjmp ritorna come risultato di una chiamata di longjmp, restituisce l'oggetto value di longjmp, o se l'argomento value di longjmp è 0, setjmp restituisce 1. Nessun ritorno di errore.
Note
La funzione setjmp salva un ambiente dello stack, che successivamente è possibile ripristinare, utilizzando longjmp. Quando setjmp e longjmp vengono utilizzate insieme, offrono un metodo per eseguire goto non in locale. 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.
Una chiamata a setjmp salva l'ambiente corrente dello stack in env. Una chiamata successiva a longjmp ripristina l'ambiente salvato e ritorna il controllo al punto immediatamente successivo alla corrispondente chiamata setjmp. Tutti i valori di tutte le variabili (eccetto le variabili del registro), accessibili al controllo di ricevimento di routine, contengono i valori che avevano quando longjmp è stato chiamato.
Non è possibile utilizzare setjmp per passare dal codice nativo al codice gestito.
Nota setjmp e longjmp non supportano la semantica di oggetti C++. In programmi C++, utilizzare il meccanismo di gestione delle eccezioni C++.
Per ulteriori informazioni, vedere Utilizzo di setjmp e longjmp.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
setjmp |
<setjmp.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.
Esempio
Vedere un esempio per _fpreset.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.