Sdílet prostřednictvím


setjmp

Uloží aktuální stav programu.

int setjmp(
   jmp_buf env 
);

Parametry

  • env
    Proměnná, ve kterém je uložen prostředí.

Vrácená hodnota

Po uložení prostředí zásobníku vrátí 0.Pokud setjmp vrátí v důsledku longjmp , vrátí volání value argument longjmp, nebo pokud value argument longjmp 0, setjmp vrátí 1.Neexistuje žádná chyba návratu.

Poznámky

setjmp Funkce uloží prostředí zásobníku, který můžete později obnovit, pomocí longjmp.Při použití, setjmp a longjmp umožňují spouštět bez místní goto.Jsou obvykle používají předat kód pro zpracování chyb nebo obnovení dříve nazývané rutiny spuštění ovládacího prvku bez použití volací normální nebo vrátit úmluv.

Volání setjmp uloží aktuální prostředí zásobníku v env.Následující volání longjmp obnoví uložené prostředí a vrátí řízení k bodu těsně po odpovídající setjmp volání.Všechny proměnné (s výjimkou rejstříku proměnné) přístupné rutinní přijímání řízení obsahují hodnoty, by měly při zpracování longjmp byla volána.

Není možné použít setjmp přecházet z původních spravovaný kód.

Poznámka:   setjmpa longjmp nepodporují sémantiku jazyka C++ objektu.V jazyce C++ programy pomocí mechanismu zpracování výjimek C++.

Další informace naleznete v tématu pomocí setjmp a longjmp.

Požadavky

Rutina

Požadované záhlaví

setjmp

<setjmp.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

Viz příklad pro _fpreset.

Ekvivalent v rozhraní .NET Framework

Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.

Viz také

Referenční dokumentace

Řízení procesů a prostředí

longjmp

_setjmp3