longjmp   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 9 septembre 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
longjmp, siglongjmp - Saut non-local vers un contexte de pile sauvegardé  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <setjmp.h>

void longjmp (jmp_buf env, int val);

void siglongjmp (sigjmp_buf env, int val);

Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :

siglongjmp() : _POSIX_C_SOURCE || _XOPEN_SOURCE  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
longjmp() et setjmp(3) 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(3) avec l'argument env correspondant. Après l'appel de longjmp(), l'exécution du programme continue comme si l'appel correspondant de setjmp(3) venait juste de renvoyer val. longjmp() ne peut pas renvoyer 0. Si longjmp() est appelé avec 0 en tant que second argument, setjmp(3) 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(3), alors siglongjmp() restituera également l'ensemble des signaux bloqués.  



VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Ces fonctions ne reviennent jamais.  



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
C89, C99, et POSIX.1-2001 spécifient longjmp(). POSIX.1-2001 spécifie siglongjmp().  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
POSIX ne précise pas si longjmp() restaure le contexte de signal. Si vous voulez sauver et restaurer le masque de signaux, utilisez siglongjmp(). Les valeurs des variables automatiques sont indéterminées après un appel à longjmp() si elles rencontrent tous les critères suivants :
*
elles sont locales aux fonctions qui ont effectué l'appel setjmp(3) correspondant ;
*
leurs valeurs sont modifiées entre les appels à setjmp(3) et longjmp() ; et
*
elles ne sont pas déclarées comme volatile. Des remarques analogues s'appliquent pour siglongjmp(). longjmp() et siglongjmp() rendent les programmes difficiles à comprendre et à maintenir. Il est préférable, si possible, d'utiliser une autre méthode.
 



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
setjmp(3), sigsetjmp(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 4 novembre 1996 et révisée le 14 janvier 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 longjmp ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:51:28, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional