getcontext man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]


       getcontext, setcontext - get and set current user context

       #include <ucontext.h>

       int getcontext(ucontext_t *ucp);

       int setcontext(const ucontext_t *ucp);

       The  getcontext()  function initializes the structure pointed to by ucp
       to the current user context of the  calling  process.   The  ucontext_t
       type  that ucp points to defines the user context and includes the con‐
       tents of the calling process' machine registers, the signal  mask,  and
       the current execution stack.

       The  setcontext() function restores the user context pointed to by ucp.
       A successful call to setcontext() does not  return;  program  execution
       resumes	at  the	 point specified by the ucp argument passed to setcon‐
       text(). The ucp argument should be created either by a  prior  call  to
       getcontext(), or by being passed as an argument to a signal handler. If
       the ucp argument was created with getcontext(), program execution  con‐
       tinues  as if the corresponding call of getcontext() had just returned.
       If the ucp argument was created with makecontext(3C), program execution
       continues with the function passed to makecontext(3C).  When that func‐
       tion returns, the process continues as if after a call to  setcontext()
       with  the  ucp  argument	 that was input to makecontext(3C). If the ucp
       argument was passed to a signal handler,	 program  execution  continues
       with  the  program instruction following the instruction interrupted by
       the signal.  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 process will exit  when	 this  context	returns.   The
       effects	of  passing  a ucp argument obtained from any other source are

       On successful completion, setcontext() does not return and getcontext()
       returns 0. Otherwise, −1 is returned.

       No errors are defined.

       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(3UCB),  then  it is unspecified whether the context at the
       time of the  corresponding  setjmp(3UCB)	 call  is  restored  and  thus
       whether future calls to getcontext() will provide an accurate represen‐
       tation  of  the	current	 context,  since  the  context	 restored   by
       longjmp(3UCB)  may  not	contain	 all the information that setcontext()
       requires.  Signal handlers should use siglongjmp(3C) instead.

       Portable applications should not modify or access the uc_mcontext  mem‐
       ber  of	ucontext_t.  A portable 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

       See attributes(5) for descriptions of the following attributes:

       │Interface Stability │ Standard	      │

       sigaction(2), sigaltstack(2), sigprocmask(2), bsd_signal(3C),  makecon‐
       text(3C),      setjmp(3UCB),	 sigsetjmp(3C),	    ucontext.h(3HEAD),
       attributes(5), standards(5)

				  Feb 5, 2001			 GETCONTEXT(2)

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net