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¶
Uwaga! To tłumaczenie może być nieaktualne!
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 są 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)
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
Tłumaczenia Manuali i
może nie być aktualne. W razie
zauważenia różnic między powyższym opisem a
rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
zapoznanie się z oryginalną (angielską) wersją strony
podręcznika za pomocą polecenia:
- man --locale=C 3 setjmp
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.