LONGJMP(3)

NOME
longjmp, siglongjmp - salto não local a um contexto de uma pilha salva

SINÓPSE
#include <setjmp.h>

void longjmp(jmp_buf env, int val);
void siglongjmp(sigjmp_buf env, int val);

DESCRIÇÃO
longjmp() e setjmp() são úteis para tratamento de erros e interrupções encontradas em uma subrotina de baixo nível de um programa. longjmp() restaura o ambiente salvo pela última chamada de setjmp() com o argumento env correspondente. Após longjmp() ser completado, a execução do programa continua como se a chamada correspondente de setjmp() tivesse retornado o valor val. longjmp() não pode retornar 0. Se longjmp for chamada com um segundo argumento de 0, será retornado 1.

siglongjmp() é similar a longjmp(), excetuando-se o tipo de seu argumento env. Se a chamada sigsetjmp() que define este env uso um sinalizador savesigs diferente de zero, siglongjmp() também irá restaurar o conjunto de sinais bloqueados.

VALORES RETORNADOS
Estas funções jamais retornam.

DE ACORDO COM
POSIX

NOTAS
POSIX não especifica se longjmp irá restaurar o contexto do sinal. Se você deseja salvar e restaurar máscaras de sinal, use siglongjmp.

longjmp() e siglongjmp() tornam os programas difíceis de entender e manter. Se possível, deve ser utilizada uma maneira alternativa.

VEJA TAMBÉM
setjmp(3), sigsetjmp(3).

TRADUZIDO POR LDP-BR em 30/05/2001.

  Tradução:
E. A. Tacão <tacao@conectiva.com.br>

  Revisão.:
André Luiz Fassone <lonely_wolf@ig.com.br>