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

FreeBSD Manual Pages

  
 
  

home | help
SIGRETURN(2)		       System Calls Manual		    SIGRETURN(2)

NAME
     sigreturn -- return from signal

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <signal.h>

     int
     sigreturn(const ucontext_t *scp);

DESCRIPTION
     The  sigreturn()  system  call  allows  users  to atomically unmask, switch
     stacks, and return from a signal context.	The  thread's  signal  mask  and
     stack  status  are  restored  from the context structure pointed to by scp.
     The system call does not return; the whole userspace context  as  specified
     by  scp,  including the userspace stack pointer, all general-purpose regis-
     ters, coprocessor state, process status register, and program  counter  are
     restored  from  the context.  Execution resumes at the program counter from
     the specified context.

     This system call is used by the kernel-provided signal trampoline code, lo-
     cated in the virtual DSO (VDSO) on some architectures or as raw code in the
     shared page if VDSO is not provided, when returning from a  signal  to  the
     previously executing program.

RETURN VALUES
     If  successful,  the system call does not return.	Otherwise, a value of -1
     may be returned, with errno set to indicate the error.  Some conditions de-
     tected by hardware result in the delivery of a synchronous trap  signal  to
     the  thread,  in  addition  to  or instead of setting the system call error
     code.

ERRORS
     The sigreturn() system call will fail and the thread  context  will  remain
     unchanged if one of the following occurs.

     [EFAULT]		The  scp  argument  points to memory that is not a valid
			part of the process address space.

     [EINVAL]		The process status longword is invalid or would  improp-
			erly raise the privilege level of the process.

SEE ALSO
     sigaction(2), setjmp(3), ucontext(3)

HISTORY
     The sigreturn() system call appeared in 4.3BSD.

FreeBSD ports 15.quarterly	 March 11, 2026 		    SIGRETURN(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sigreturn&sektion=2&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help