Partager via


setjmp

Enregistre l'état actuel du programme.

int setjmp(
   jmp_buf env 
);

Paramètres

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

Valeur de retour

Retourne 0 après avoir enregistré l'environnement de pile. Si setjmp renvoie comme résultat d'un appel de longjmp, il retourne l'argument value de longjmp, ou si l'argument value d' longjmp est 0, setjmp retourne 1. Aucun retour d'erreur.

Notes

La fonction setjmp enregistre un environnement de pile, que vous pouvez restaurer par la suite, à l'aide de longjmp. Lorsque setjmp et longjmp sont utilisés conjointement, ils fournissent un moyen d'exécuter un goto non local. Ils sont généralement utilisés pour passer le contrôle d'exécution au code de gestion des erreurs ou le code récupération dans une routine appelée précédemment sans utiliser l'appel normal ou les conventions de retour.

Un appel à setjmp enregistre l'environnement actuel de pile dans env. Un appel suivant à longjmp restaure l'environnement enregistré et retourne le contrôle au point juste après l'appel correspondant setjmp. Toutes les variables (à l'exception de les variables de registre) accessibles au contrôle récepteur de routine contiennent les valeurs qu'elles avaient lorsque longjmp a été appelé.

Il est impossible d'utiliser setjmp pour aller du code natif au code managé.

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

Pour plus d'informations, consultez Using setjmp and longjmp.

Configuration requise

Routine

En-tête requis

setjmp

<setjmp.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Exemple

Consultez l'exemple de _fpreset.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Voir aussi

Référence

Contrôle de processus et d'environnement

longjmp

_setjmp3