Définition de type | |
typedef __array_type | jmp_buf |
état de l'environnement. | |
Fonctions | |
int | setjmp (jmp_buf env) |
stocke l'environnement | |
void | longjmp (jmp_buf env, int val) |
restaure l'environnement |
typedef __array_type jmp_buf |
Contient l'état nécessaire pour restaurer l'environnement après un saut non local.
void longjmp | ( | jmp_buf | env, | |
int | val | |||
) |
Restaure l'environnement à celui actuel au moment du dernier appel à setjmp() avec le même buffer.
Le comportement est indéfini s'il n'y a jamais eu d'appel à longjmp() avec cet environnement, ou si l'exécution de la fonction ayant appelé en dernier longjmp() avec cet environnement est terminée (que la fonction ait exécuté un return ou à cause d'un autre longjmp()).
int setjmp | ( | jmp_buf | env | ) |
Stocke l'environnement nécessaire en vue d'une restauration par longjmp().
Au retour de setjmp() suite à un longjmp(), les valeurs des variables locales à la fonction appelant setjmp() non volatiles et ayant été modifiées depuis l'appel à setjmp() sont non définies; tous les autres objets acessibles ont la valeur qu'ils avaient au moment de longjmp().
la valeur passée à longjmp() dans le cas contraire (sauf si on passe 0 à longjmp() auquel cas setjmp() retourne 1).
setjmp() ne peut apparaître que dans des contextes limités: