Compartilhar via


setjmp

Salva o estado corrente do programa.

int setjmp(
   jmp_buf env 
);

Parâmetros

  • env
    Variável em que o ambiente está armazenado.

Valor de retorno

Retorna 0 após salvar o ambiente de pilha.If setjmp Retorna sistema autônomo resultado de um longjmp telefonar, ela retorna o value argumento de longjmp, ou se a value argumento de longjmp é 0, setjmp Retorna 1. Não há nenhum retorno de erro.

Comentários

The setjmp função salva um ambiente de pilha, que, em seguida, restauração, usando longjmp. Quando usados juntos, setjmp e longjmp fornecem uma maneira de executar um não-local goto. Eles são normalmente usados para passar o controle de execução para código de tratamento de erros ou recuperação em uma rotina anteriormente chamado sem usar a chamada normal ou retornam as convenções.

Uma telefonar para setjmp salva o ambiente corrente de pilha em env. Uma telefonar subseqüente a longjmp Restaura o ambiente salvo e retorna o controle até o ponto imediatamente após o correspondente setjmp Chame. Todas as variáveis (exceto variáveis de registro) acessíveis para a rotina receber controle contêm os valores que tinham quando longjmp foi chamado.

Não é possível usar setjmp Para pular de nativo para código gerenciado.

Observação   setjmp e longjmp não oferecem suporte à semântica de objeto C++. Nos programas do C++, usar o mecanismo de tratamento de exceção de C++.

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

Requisitos

Rotina

Cabeçalho necessário

setjmp

<setjmp.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

Consulte o exemplo para _fpreset.

Equivalente do NET Framework

Não aplicável. Para telefonar 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 ambiente de controle

longjmp