getcontext(3)
NAME
getcontext, setcontext - get and set user thread context
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <ucontext.h> int getcontext(ucontext_t *ucp); int setcontext(const ucontext_t *ucp);
DESCRIPTION
- The getcontext() function saves the current thread's execu
- tion context in
the structure pointed to by ucp. This saved context may - then later be
restored by calling setcontext(). - The setcontext() function makes a previously saved thread
- context the
current thread context, i.e., the current context is lost - and
setcontext() does not return. Instead, execution continues - in the context specified by ucp, which must have been previously ini
- tialized by a
call to getcontext(), makecontext(3), or by being passed as - an argument
to a signal handler (see sigaction(2)). - If ucp was initialized by getcontext(), then execution con
- tinues as if
the original getcontext() call had just returned (again). - If ucp was initialized by makecontext(3), execution contin
- ues with the
invocation of the function specified to makecontext(3). - When that function returns, ucp->uc_link determines what happens next: if
- ucp->uc_link
is NULL, the process exits; otherwise, - setcontext(ucp->uc_link) is
implicitly invoked. - If ucp was initialized by the invocation of a signal han
- dler, execution
continues at the point the thread was interrupted by the - signal.
RETURN VALUES
- If successful, getcontext() returns zero and setcontext()
- does not
return; otherwise -1 is returned.
ERRORS
No errors are defined for getcontext() or setcontext().
SEE ALSO
- sigaction(2), sigaltstack(2), makecontext(3), ucontext(3)
- BSD September 10, 2002