/* Void Main's man pages */

{ phpMan } else { main(); }

Command: man perldoc info search(apropos)  


GETCONTEXT(3P)                                      POSIX Programmer's Manual                                     GETCONTEXT(3P)



PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux implementation of this interface may differ (con-
       sult the corresponding Linux manual page for details of Linux behavior), or the  interface  may  not  be  implemented  on
       Linux.

NAME
       getcontext, setcontext - get and set current user context

SYNOPSIS
       #include <ucontext.h>

       int getcontext(ucontext_t *ucp);
       int setcontext(const ucontext_t *ucp);


DESCRIPTION
       The  getcontext()  function  shall  initialize the structure pointed to by ucp to the current user context of the calling
       thread. The ucontext_t type that ucp points to defines the user context and includes the contents of the calling thread's
       machine registers, the signal mask, and the current execution stack.

       The  setcontext()  function shall restore the user context pointed to by ucp. A successful call to setcontext() shall not
       return; program execution resumes at the point specified by the ucp argument passed to  setcontext().  The  ucp  argument
       should  be created either by a prior call to getcontext() or makecontext(), or by being passed as an argument to a signal
       handler. If the ucp argument was created with getcontext(), program execution continues as if the corresponding  call  of
       getcontext()  had just returned. If the ucp argument was created with makecontext(), program execution continues with the
       function passed to makecontext().  When that function returns, the thread shall continue as if after a  call  to  setcon-
       text()  with  the ucp argument that was input to makecontext(). If the uc_link member of the ucontext_t structure pointed
       to by the ucp argument is equal to 0, then this context is the main context, and the thread shall exit when this  context
       returns. The effects of passing a ucp argument obtained from any other source are unspecified.

RETURN VALUE
       Upon successful completion, setcontext() shall not return and getcontext() shall return 0; otherwise, a value of -1 shall
       be returned.

ERRORS
       No errors are defined.

       The following sections are informative.

EXAMPLES
       Refer to makecontext().

APPLICATION USAGE
       When a signal handler is executed, the current user context is saved and a new context is created. If the  thread  leaves
       the  signal  handler  via longjmp(), then it is unspecified whether the context at the time of the corresponding setjmp()
       call is restored and thus whether future calls to getcontext() provide an accurate representation of the current context,
       since the context restored by longjmp() does not necessarily contain all the information that setcontext() requires. Sig-
       nal handlers should use siglongjmp() or setcontext() instead.

       Conforming applications should not modify or access the uc_mcontext member of ucontext_t. A conforming application cannot
       assume  that  context includes any process-wide static data, possibly including errno. Users manipulating contexts should
       take care to handle these explicitly when required.

       Use of contexts to create alternate stacks is not defined by this volume of IEEE Std 1003.1-2001.

RATIONALE
       None.

FUTURE DIRECTIONS
       None.

SEE ALSO
       bsd_signal(),  makecontext(),  setcontext(),   setjmp(),   sigaction(),   sigaltstack(),   siglongjmp(),   sigprocmask(),
       sigsetjmp(), the Base Definitions volume of IEEE Std 1003.1-2001, <ucontext.h>

COPYRIGHT
       Portions  of  this  text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for
       Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6,  Copy-
       right (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any
       discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open  Group
       Standard   is   the   referee   document.   The   original   Standard   can   be   obtained  online  at  http://www.open-
       group.org/unix/online.html .



IEEE/The Open Group                                           2003                                                GETCONTEXT(3P)

Valid XHTML 1.0!Valid CSS!