Compartilhar via


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.

Consulte também

Referência

Processo e controle do ambiente

longjmp

_setjmp3