setjmp

Autres langues

Langue: pl

Autres versions - même langue

Version: 1997-03-02 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

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 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)