Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

setjmp

 

Publication: juillet 2016

Enregistre l'état actuel du programme.

int setjmp(
   jmp_buf env 
);

env

Variable dans laquelle l'environnement est enregistré.

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.  

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.

Afficher: