Partager via


setjmp

enregistre l'état actuel du programme.

int setjmp(
   jmp_buf env 
);

Paramètres

  • env
    Variable dans laquelle l'environnement est stocké.

Valeur de retour

Retourne 0 après avoir inscrit l'environnement de pile.Si setjmp retourne à la suite d'un appel d' longjmp , il retourne l'argument d' value d' longjmp, ou si l'argument d' value d' longjmp est 0, retourne 1. d' setjmp .Il n'existe aucun retour d'erreur.

Notes

La fonction d' setjmp enregistre un environnement de pile, que vous pouvez ensuite restaurer, à l'aide de longjmp.En cas de utilisation ensemble, setjmp et longjmp fournissent un moyen d'exécuter des locales goto.Elles sont généralement utilisées pour lui passer le contrôle d'exécution au code de gestion des erreurs ou de récupération dans une routine précédemment appelée sans utiliser l'appel normal ou les conventions de retour.

Un appel à setjmp signale l'environnement de pile en cours dans env.Un appel suivant à longjmp restaure le contrôle enregistré d'environnement et retourne au point juste après l'appel correspondant d' setjmp .Toutes les variables (sauf les variables de registre) accessibles au contrôle de réception actif contiennent les valeurs qu'elles avaient lorsque longjmp a été appelé.

Il n'est pas possible d'utiliser setjmp pour accéder à partir de le tas natif en code managé.

Remarque   setjmp et longjmp ne prennent pas en charge la sémantique d'objet C++.Dans les programmes C++, utilisez le mécanisme de gestion des exceptions C++.

Pour plus d'informations, consultez À l'aide de le setjmp et le longjmp.

Configuration requise

routine

en-tête requis

setjmp

<setjmp.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

Consultez l'exemple pour _fpreset.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Voir aussi

Référence

Processus et contrôle ambiance

longjmp

_setjmp3