NOMBRE¶
setjmp, sigsetjmp - guardan el contexto de pila para saltos no locales
SINOPSIS¶
#include <setjmp.h>
int setjmp(jmp_buf env);
int sigsetjmp(sigjmp_buf env, int savesigs);
DESCRIPCIÓN¶
Las funciones
setjmp() y
longjmp() son útiles para tratar
con errores e interrupciones encontradas en una subrutina de bajo nivel de un
programa.
setjmp() guarda el entorno/contexto de pila en
env
para un uso posterior de
longjmp(). El contexto de pila será
invalidado si la función que llamó a
setjmp() regresa.
sigsetjmp() es similar a
setjmp(). Si
savesigs es distinto
de cero, el conjunto de señales bloqueadas se guarda en
env y
será restaurado si se llama más tarde a
siglongjmp() con
este
env.
VALOR DEVUELTO¶
setjmp() y
sigsetjmp() devuelven 0 si regresan directamente, y
no-cero cuando regresan desde
longjmp() usando el contexto previamente
salvaguardado.
POSIX, ISO 9899 (C99)
OBSERVACIONES¶
POSIX no especifica si
setjmp guardará el contexto de
señales. (En SYSV no lo hará. En BSD4.3 sí, y hay una
función
_setjmp que no lo hará). Si quiere guardar las
máscaras de señales, use
sigsetjmp.
setjmp() y
sigsetjmp hacen que los programas sean difíciles
de entender y mantener. Si es posible busque otra alternativa.
VÉASE TAMBIÉN¶
longjmp(3),
siglongjmp(3)