UNIX ON-LINE Man Pages - Die Onlinehilfe

Die Syntax von Unixbefehlen wird in den entsprechenden Manpages dokumentiert. Hier können Sie diese Onlinehilfe für viele Standardbefehle abrufen.

Suchoptionen:
Seiten auflisten, welche beginnen mit:
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   ALPHA   NUM   ANDERE   ALLE
GETCONTEXT(2)              Linux Programmer's Manual             GETCONTEXT(2)

NAME
       getcontext, setcontext - get or set the user context

SYNOPSIS
       #include <ucontext.h>

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

DESCRIPTION
       In  a  System  V-like environment, one has the two types mcontext_t and
       ucontext_t defined in <ucontext.h> and the four functions getcontext(),
       setcontext(),  makecontext(3)  and swapcontext(3) that allow user-level
       context switching between multiple threads of control within a process.

       The  mcontext_t  type  is machine-dependent and opaque.  The ucontext_t
       type is a structure that has at least the following fields:

           typedef struct ucontext {
               struct ucontext *uc_link;
               sigset_t         uc_sigmask;
               stack_t          uc_stack;
               mcontext_t       uc_mcontext;
               ...
           } ucontext_t;

       with sigset_t and stack_t defined in <signal.h>.  Here  uc_link  points
       to the context that will be resumed when the current context terminates
       (in case the current context was created using makecontext(3)), uc_sig-
       mask  is  the  set  of  signals  blocked  in this context (see sigproc-
       mask(2)), uc_stack is the stack  used  by  this  context  (see  sigalt-
       stack(2)),  and  uc_mcontext  is the machine-specific representation of
       the saved context, that includes the calling  thread's  machine  regis-
       ters.

       The  function  getcontext() initializes the structure pointed at by ucp
       to the currently active context.

       The function setcontext() restores the user context pointed at by  ucp.
       A  successful  call  does  not  return.   The  context should have been
       obtained by a call of getcontext(), or  makecontext(3),  or  passed  as
       third argument to a signal handler.

       If  the  context was obtained by a call of getcontext(), program execu-
       tion continues as if this call just returned.

       If the context was obtained by a call of makecontext(3), program execu-
       tion  continues  by a call to the function func specified as the second
       argument of that  call  to  makecontext(3).   When  the  function  func
       returns, we continue with the uc_link member of the structure ucp spec-
       ified as the first argument of that call to makecontext(3).  When  this
       member is NULL, the thread exits.

       If  the  context  was  obtained by a call to a signal handler, then old
       standard text says that "program execution continues with  the  program
       instruction following the instruction interrupted by the signal".  How-
       ever, this sentence was removed in SUSv2, and the  present  verdict  is
       "the result is unspecified".

RETURN VALUE
       When  successful,  getcontext()  returns  0  and  setcontext() does not
       return.  On error, both return -1 and set errno appropriately.

ERRORS
       None defined.

CONFORMING TO
       SUSv2, POSIX.1-2001.  POSIX.1-2008 removes the specification of getcon-
       text(),  citing  portability issues, and recommending that applications
       be rewritten to use POSIX threads instead.

NOTES
       The earliest incarnation of this mechanism was the setjmp(3)/longjmp(3)
       mechanism.   Since that does not define the handling of the signal con-
       text, the next stage  was  the  sigsetjmp(3)/siglongjmp(3)  pair.   The
       present mechanism gives much more control.  On the other hand, there is
       no easy way to detect whether a return from getcontext()  is  from  the
       first call, or via a setcontext() call.  The user has to invent her own
       bookkeeping device, and a register variable won't  do  since  registers
       are restored.

       When  a signal occurs, the current user context is saved and a new con-
       text is created by the kernel for the signal handler.  Do not leave the
       handler  using  longjmp(3): it is undefined what would happen with con-
       texts.  Use siglongjmp(3) or setcontext() instead.

SEE ALSO
       sigaction(2),  sigaltstack(2),  sigprocmask(2),  longjmp(3),   makecon-
       text(3), sigsetjmp(3)

COLOPHON
       This  page  is  part of release 3.25 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.

Linux                             2009-03-15                     GETCONTEXT(2)
 

Scannen Sie den Barcode um die Webseite zu öffnen


Quelle: http://www.trinler.net/de/service/doc/linux/man.html?command=getcontext
Gedruckt am: 15.12.2017 22:45 GMT+0100 (2017-12-15T22:45:11+01:00)