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.