setjmp
Salva o estado atual do programa.
int setjmp(
jmp_buf env
);
Parâmetros
- env
Variável em que o ambiente está armazenado.
Valor de retorno
Retorna 0 depois de salvar o ambiente de pilha.Se setjmp retorna como resultado de uma longjmp chamar, ele retorna o value argumento do longjmp, ou se a value argumento do longjmp é 0, setjmp retorna 1.Não há nenhum retorno de erro.
Comentários
O setjmp função salva de um ambiente de pilha, o que, posteriormente, você pode restaurar, usando longjmp.Quando usados juntos, setjmp e longjmp fornecem uma maneira para executar um não-local goto.Eles são normalmente usados para passar o controle de execução para o código de tratamento de erros ou de recuperação em uma rotina anteriormente chamado sem usar a chamada normal ou convenções de retorno.
Uma chamada para setjmp salva o ambiente atual de pilha em env.Uma chamada subseqüente para longjmp restaura o ambiente salvo e retorna o controle para o ponto imediatamente após o correspondente setjmp de chamada.Todas as variáveis (exceto a variáveis de registro) acessíveis para a rotina de receber controle contêm os valores que tinham quando longjmp foi chamado.
Não é possível usar setjmp para pular de código nativo para gerenciado.
Observação setjmpe longjmp não oferecem suporte a semântica de objeto C++.Em programas em C++, use o mecanismo de tratamento de exceção do C++.
Para obter mais informações, consulte longjmp e setjmp usando.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
setjmp |
<setjmp.h> |
Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.
Exemplo
Consulte o exemplo para _fpreset.
Equivalência do .NET Framework
Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.