Condividi tramite


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.

Vedere anche

Riferimenti

Controllo processo e ambiente

longjmp

_setjmp3