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é.