Provided by: manpages-pl-dev_20060617-1_all bug

NAZWA

       setjmp - zachowanie kontekstu stosu dla nielokalnego goto

SKŁADNIA

       #include <setjmp.h>

       int setjmp(jmp_buf env);
       int sigsetjmp(sigjmp_buf env, int savesigs);

OPIS

       setjmp   i   longjmp()  są  przydatne  w  obsłudze  błędów  i  przerwań
       napotykanych  w   niskopoziomowych   procedurach   programu.   setjmp()
       zachowuje kontekst/środowisko stosu w env dla późniejszego użycia przez
       longjmp(). Kontekst stosu będzie  unieważniony,  gdy  funkcja  wołająca
       setjmp() się zakończy.

       sigsetjmp()  jest  podobne  do  setjmp().  Gdy savesigs jest niezerowe,
       zestaw  blokowanych  sygnałów  jest  zachowywany  w  env   i   zostanie
       odtworzony przez późniejsze wykonanie siglongjmp() z tym samym env.

WARTOŚĆ ZWRACANA

       setjmp()  i  sigsetjmp()  zwracają  0  po  bezpośrednim  zakończeniu, a
       wartość  niezerową  po  powrocie  za   pomocą   funkcji   longjmp()   z
       wykorzystaniem zachowanego kontekstu .

ZGODNE Z

       POSIX, ISO 9899 (C99)

UWAGI

       POSIX  nie  określa,  czy  setjmp ma zachowywać kontekst sygnałowy.  (W
       SYSV nie zachowuje. W BSD4.3 zachowuje, ale istnieje  funkcja  _setjmp,
       która   nie  zachowuje.)   Jeśli  istnieje  potrzeba  zachowania  maski
       sygnałów, to należy użyć sigsetjmp.

       setjmp() i fBsigsetjmp powodują, że programy  trudne do zrozumienia i
       pielęgnowania. Jeśli jest to możliwe, należy używać innych rozwiązań.

ZOBACZ TAKŻE

       longjmp(3), siglongjmp(3)

                                  1997-03-02                         SETJMP(3)