sigsetjmp siglongjmp setjmp longjmp _setjmp _longjmp longjmperror - non-local jumps
Lb libc
The corresponding
longjmp ();
functions restore the environment saved by their most recent respective
invocations
of the
setjmp ();
function.
They then return so that program execution continues as if the corresponding
invocation of the
setjmp ();
call had just returned the value specified by
Fa val ,
instead of 0.
Pairs of calls may be intermixed, i.e., both
sigsetjmp ();
and
siglongjmp ();
and
setjmp ();
and
longjmp ();
combinations may be used in the same program, however, individual
calls may not, e.g. the
Fa env
argument to
setjmp ();
may not be passed to
siglongjmp (.);
The
longjmp ();
routines may not be called after the routine which called the
setjmp ();
routines returns.
All accessible objects have values as of the time
longjmp ();
routine was called, except that the values of objects of automatic storage
invocation duration that do not have the
Vt volatile
type and have been changed between the
setjmp ();
invocation and
longjmp ();
call are indeterminate.
The
setjmp (Ns / Ns Fn longjmp);
pairs save and restore the signal mask while
_setjmp (Ns / Ns Fn _longjmp);
pairs save and restore only the register set and the stack.
(See
sigprocmask (2 . ));
The
sigsetjmp (Ns / Ns Fn siglongjmp);
function
pairs save and restore the signal mask if the argument
Fa savemask
is non-zero, otherwise only the register set and the stack are saved.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |