Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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);

       where:

       ucp    points  to  a  structure	defined	in <ucontext.h>	containing the
	      signal mask, execution stack, and	machine	registers.

DESCRIPTION
       getcontext(2) gets the current context of the calling process,  storing
       it in the ucontext struct pointed to by ucp.

       setcontext(2)  sets  the	 context  of  the calling process to the state
       stored in the ucontext struct pointed to	by ucp.	The struct must	either
       have been created by getcontext(2) or have been passed as the third pa-
       rameter of the sigaction(2) signal handler.

       The ucontext struct created by getcontext(2) is defined in <ucontext.h>
       as follows:

	      typedef struct ucontext
		{
		    unsigned long int uc_flags;
		    struct ucontext *uc_link;
		    stack_t uc_stack;
		    mcontext_t uc_mcontext;
		    __sigset_t uc_sigmask;
		    struct _fpstate __fpregs_mem;
		  } ucontext_t;

RETURN VALUES
       getcontext(2)  returns  0  on success and -1 on failure.	 setcontext(2)
       does not	return a value on success and returns -1 on failure.

STANDARDS
       These functions comform to: XPG4-UNIX.

NOTES
       When a signal handler executes, the current user	context	is saved and a
       new  context  is	 created by the	kernel.	 If the	calling	process	leaves
       the signal handler using	longjmp(2), the	original context cannot	be re-
       stored,	and  the  result  of  future calls to getcontext(2) are	unpre-
       dictable. To avoid this problem,	use siglongjmp(2) or setcontext(2)  in
       signal handlers instead of longjmp(2).

SEE ALSO
       sigaction(2), sigaltstack(2), sigprocmask(2), sigsetjmp(3), setjmp(3).

Red Hat	Linux 6.1	       20 September 1999		 GETCONTEXT(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | STANDARDS | NOTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=getcontext&sektion=2&manpath=Red+Hat+9>

home | help