zion - longjmp
Nom
longjmp, siglongjmp - Saut non-local vers un contexte de pile sauvegardé.
Résumé
#include <setjmp.h> .nf void longjmp (jmp_buf env , int val ); void siglongjmp (sigjmp_buf env , int val ); .fi
Description
longjmp() et setjmp() sont utiles pour la gestion d'erreurs et d'interruptions rencontrées dans une routine bas-niveau d'un programme. longjmp() restitue l'environnement sauvegardé lors du dernier appel de setjmp() avec l'argument env correspondant. Après l'appel de longjmp() l'exécution du programme continue comme si l'appel correspondant de setjmp() venait juste de renvoyer val. longjmp() ne peut pas renvoyer 0. Si longjmp est appelé avec 0 en tant que second argument, setjmp renverra 1 à la place.
siglongjmp() est identique à longjmp() hormis le type de son argument env. Si l'argument savesigs est non nul lors de l'appel de sigsetjmp(), alors siglongjmp() restituera également l'ensemble des signaux bloqués.
Valeur renvoyée
Ces fonctions ne reviennent jamais.
Conformité
POSIX
Notes
POSIX ne précise pas si longjmp restore le contexte de signal. Si vous voulez sauver et restorer le masque de signaux, utilisez siglongjmp.
longjmp() et siglongjmp() rendent les programmes difficiles à comprendre et à maintenir. Il est préférable si possible utiliser une autre méthode.
Voir aussi
setjmp (3), sigsetjmp (3).
Traduction
Christophe Blaess, 1996-2003.
Poster un commentaire