SETJMP(3)

NAME
setjmp, sigsetjmp - salvam contexto da pilha para 'goto' não local

SINÓPSE
#include <setjmp.h>

int setjmp(jmp_buf env);
int sigsetjmp(sigjmp_buf env, int savesigs);

DESCRIÇÃO
setjmp() e longjmp() são úteis para tratamento de erros e interrupções encontrados em uma subrotina de baixo nível de um programa. setjmp() salva o contexto/ambiente da pilha em env para uso posterior por longjmp(). O contexto da pilha será invalidado se a função que chamou setjmp() retornar.

sigsetjmp() é similar a setjmp(). Se savesigs for diferente de zero, o conjunto de sinais bloqueados será salvo em env e será restaurado se uma siglongjmp() for executada posteriormente com este env.

VALORES RETORNADOS
setjmp() e sigsetjmp() retornam 0 se retornarem diretamente, e valores diferentes de zero se retornarem de longjmp() usando o contexto salvo.

DE ACORDO COM
POSIX, ISO 9899.

NOTAS
O POSIX não especifica se setjmp deve salvar o contexto do sinal. (No SYSV ela não irá. No BSD4.3 ela irá, e existe uma função _setjmp que não salva.) Se você desejar salvar máscaras de sinal, use sigsetjmp.

setjmp() e sigsetjmp fazem com que os programas seja difíceis de serem entendidos e mantidos. Se possível, deve-se usar alguma outra alternativa.

VEJA TAMBÉM
longjmp(3), siglongjmp(3).

TRADUZIDO POR LDP-BR em 12/06/2001.

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

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