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/.