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	speci-
       fied by scp, including the userspace stack pointer, all general-purpose
       registers,  coprocessor	state,	process	 status	 register, and program
       counter are restored from the context.  Execution resumes at  the  pro-
       gram counter from the specified context.

       This system call	is used	by the kernel-provided signal trampoline code,
       located	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  sig-
       nal 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	condi-
       tions detected 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  re-
       main 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  im-
			  properly 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