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: