Namespace
Varianti

std::longjmp

Da cppreference.com.
< cpp‎ | utility‎ | program

 
 
Utilità libreria
Tipo di supporto (basic types, RTTI, type traits)
Gestione della memoria dinamica
La gestione degli errori
Programma di utilità
Funzioni variadic
Data e ora
Funzione oggetti
initializer_list(C++11)
bitset
hash(C++11)
Gli operatori relazionali
Original:
Relational operators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
rel_ops::operator!=
rel_ops::operator>
rel_ops::operator<=
rel_ops::operator>=
Coppie e tuple
Original:
Pairs and tuples
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
pair
tuple(C++11)
piecewise_construct_t(C++11)
piecewise_construct(C++11)
Swap, in avanti e spostare
Original:
Swap, forward and move
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
swap
forward(C++11)
move(C++11)
move_if_noexcept(C++11)
declval(C++11)
 
Programma di supporto utilità
Programma di terminazione
Original:
Program termination
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
abort
exit
quick_exit(C++11)
_Exit(C++11)
Comunicante con l'ambiente
Original:
Communicating with the environment
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Segnali
Original:
Signals
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Tipi di segnale
Original:
Signal types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
SIGABRT
SIGFPE
SIGILL
SIGINT
SIGSEGV
SIGTERM
Non locali salti
Original:
Non-local jumps
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
setjmp
longjmp
Tipi
Original:
Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
jmp_buf
 
Defined in header <csetjmp>
void longjmp( std::jmp_buf env, int status );
Carica il contesto di esecuzione env salvato da una precedente chiamata a setjmp. Questa funzione non restituisce. Il controllo viene trasferito al sito di chiamata del setjmp macro che ha istituito env. Che setjmp quindi restituisce il valore passato come status.
Original:
Loads the execution context env saved by a previous call to setjmp. This function does not return. Control is transferred to the call site of the macro setjmp that set up env. That setjmp then returns the value, passed as the status.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se la funzione che ha chiamato setjmp è uscito, il comportamento è indefinito (in altre parole, solo i salti lunghi fino lo stack di chiamate sono ammessi)
Original:
If the function that called setjmp has exited, the behavior is undefined (in other words, only long jumps up the call stack are allowed)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Non ci sono distruttori per gli oggetti automatici sono chiamati. In caso di sostituzione di std::longjmp con throw e setjmp con catch eseguirà un distruttore non banale per qualsiasi oggetto automatico, il comportamento di std::longjmp tale non è definito.
Original:
No destructors for automatic objects are called. If replacing of std::longjmp with throw and setjmp with catch would execute a non-trivial destructor for any automatic object, the behavior of such std::longjmp is undefined.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Indice

[modifica] Parametri

env -
variabile riferimento allo stato di esecuzione del programma salvato da std::setjmp
Original:
variable referring to the execution state of the program saved by std::setjmp
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
status -
il valore da restituire da setjmp. Se è uguale a 0, 1 viene usato invece
Original:
the value to return from setjmp. If it is equal to 0, 1 is used instead
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[modifica] Valore di ritorno

(Nessuno)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[modifica] Esempio

#include <iostream>
#include <csetjmp>
 
std::jmp_buf jump_buffer;
 
[[noreturn]] void a(int count) 
{
    std::cout << "a(" << count << ") called\n";
    std::longjmp(jump_buffer, count+1);  // setjump() will return count+1
}
 
int main()
{
    int count = setjmp(jump_buffer);
    if (count != 9) {
        a(count);  // This will cause setjmp() to exit
    }
}

Output:

a(0) called
a(1) called
a(2) called
a(3) called
a(4) called
a(5) called
a(6) called
a(7) called
a(8) called

[modifica] Vedi anche

salva il contesto
Original:
saves the context
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(funzione macro) [edit]
C documentation for longjmp