Compartilhar via


setjmp

Salva o estado atual do programa.

int setjmp(
   jmp_buf env 
);

Parâmetros

  • env
    Variável na qual o ambiente é armazenado.

Valor de retorno

Retorna 0 depois de salvar o ambiente de pilha. Se setjmp retorna no resultado de uma chamada de longjmp , retorna o argumento de value de longjmp, ou se o argumento de value de longjmp for 0, retornará 1. setjmp de. Não há nenhum retorno de erro.

Comentários

A função de setjmp salva um ambiente da pilha, que você pode restaurar subsequentemente, usando longjmp. Quando usado junto, setjmp e longjmp fornecem um modo de executar um local não goto. Normalmente são usados para transmitir o controle de execução para o código de tratamento de erro ou de recuperação em uma rotina chamado anteriormente sem usar a chamada normal ou as convenções de retorno.

Uma chamada para setjmp salva o ambiente atual da pilha em env. Uma chamada subsequente a longjmp restaura o controle ao ambiente e retorna o ponto imediatamente depois da chamada de setjmp correspondente. Todas as variáveis (exceto variáveis do registro) acessíveis ao controle pull rotina contêm os valores que tinham longjmp quando foi chamado.

Não é possível usar setjmp para ignorar nativos no código gerenciado.

Observação   setjmp e longjmp não dão suporte a semântica do objeto C++. Em programas C++, use o mecanismo de controle de exceções das linguagens C++.

Para obter mais informações, consulte Usando o setjmp e o longjmp.

Requisitos

Rotina

Cabeçalho necessário

setjmp

<setjmp.h>

Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.

Exemplo

Consulte o exemplo de _fpreset.

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.

Consulte também

Referência

Processo e controle de ambiente

longjmp

_setjmp3