signal.h

Overview

Related Modules:

IPC

Description:

Provides signal operation functions and structures, including changing the signal processing mode and the process signal mask set.

Since:

1.0

Version:

1.0

Summary

Data Structures

Data Structure Name Description
sigaltstack Describes a signal stack.
ucontext Describes the user execution context.
sigset_t Defines a signal set.
sigaction Defines the signal processing actions and related attributes. You can use the structures to change the processing actions or attributes.
sigaltstack Describes a signal stack.
sigval Describes signal values in different cases.
__si_fields Describes signal information.
sigaction Defines the signal processing actions and related attributes. You can use the structures to change the processing actions or attributes.
sigevent Describes asynchronous notifications.

Macros

Macro Name and Value Description
SA_NOCLDSTOP   1 Stops a child process without sending the SIGCHLD signal.
SA_NOCLDWAIT   2 Sets the SIGCHLD flag to prevent zombie processes.
SA_SIGINFO   4 Transfers the siginfo_t structure with the signal.
SA_ONSTACK   0x08000000 Uses the signal stack specified by sigaltstack for signal processing.
SA_RESTART   0x10000000 Obtains the restart signal.
SA_NODEFER   0x40000000 The signals being processed are not masked during signal processing.
SA_RESETHAND   0x80000000 The default processing mode is restored after the signal processing is complete.
SA_RESTORER   0x04000000 Not intended for application use. This flag is used by C libraries to indicate that the sa_restorer field contains the address of a trampoline.
MINSIGSTKSZ   2048 Defines the minimum size of the replaceable signal stack.
SIGSTKSZ   8192 Defines the size of a signal stack.
_NSIG   65 Number of supported signals.
_NSIG_BPW   BITS_PER_LONG Number of bits occupied by a word.
_NSIG_WORDS   (_NSIG / _NSIG_BPW) Number of words required by all signals.
SIGHUP   1 Hangs up a process.
SIGINT   2 Interrupts a process from keyboard.
SIGQUIT   3 Exits a process from keyboard. A core file is generated.
SIGILL   4 Illegal instruction.
SIGTRAP   5 Breakpoint, used for debugging.
SIGABRT   6 Abnormal termination.
SIGIOT   6 Equivalent to SIGABRT.
SIGBUS   7 Invalid address access.
SIGFPE   8 Floating-point exceptions.
SIGKILL   9 Forcibly stops a process.
SIGUSR1   10 User-defined signal 1.
SIGSEGV   11 Illegal memory access.
SIGUSR2   12 User-defined signal 2.
SIGPIPE   13 The pipe is broken.
SIGALRM   14 Timer signal.
SIGTERM   15 Termination signal.
SIGSTKFLT   16 Coprocessor stack error.
SIGCHLD   17 Child process terminated or stopped.
SIGCONT   18 Resumes a suspended process.
SIGSTOP   19 Suspends a process.
SIGTSTP   20 Stops a process by entering the command on the terminal.
SIGTTIN   21 Input required by the background process.
SIGTTOU   22 Output required by the background process.
SIGURG   23 Urgent socket condition.
SIGXCPU   24 CPU time limit exceeded.
SIGXFSZ   25 File size limit exceeded.
SIGVTALRM   26 Virtual timer, used to calculate the CPU occupation time of a process.
SIGPROF   27 Calculates the CPU time occupied by a process and the system calling time.
SIGWINCH   28 Window size change.
SIGIO   29 Input/Output.
SIGPOLL   SIGIO Equivalent to SIGIO.
SIGPWR   30 Power failure.
SIGSYS   31 Non-existent system call.
SIGUNUSED   31 Equivalent to SIGSYS.
SIGRTMIN   32 Start of a reliable signal.
SIGRTMAX   _NSIG End of a reliable signal.
SA_NOCLDSTOP   0x00000001 Stops a child process without sending the SIGCHLD signal.
SA_NOCLDWAIT   0x00000002 Sets the SIGCHLD flag to prevent zombie processes.
SA_SIGINFO   0x00000004 Transfers the siginfo_t structure with the signal.
SA_THIRTYTWO   0x02000000 Transfers signals in a 32-bit mode even if the task runs in a 26-bit mode.
SA_RESTORER   0x04000000 Not intended for application use. This flag is used by C libraries to indicate that the sa_restorer field contains the address of a trampoline.
SA_ONSTACK   0x08000000 Uses the signal stack specified by sigaltstack for signal processing.
SA_RESTART   0x10000000 Obtains the restart signal.
SA_NODEFER   0x40000000 The signals being processed are not masked during signal processing.
SA_RESETHAND   0x80000000 The default processing mode is restored after the signal processing is complete.
SA_NOMASK   SA_NODEFER Signals being processed are not masked during signal processing.
SA_ONESHOT   SA_RESETHAND The default processing mode is restored after the signal processing is complete.
MINSIGSTKSZ   2048 Defines the minimum size of the replaceable signal stack.
SIGSTKSZ   8192 Defines the size of a signal stack.
SIG_BLOCK   0 Defines the function behaviors such as sigprocmask() and pthread_sigmask(), which are used to add signals to the mask set.
SIG_UNBLOCK   1 Defines the function behaviors such as sigprocmask() and pthread_sigmask(), which are used to remove signals from the mask set.
SIG_SETMASK   2 Defines the function behaviors such as sigprocmask() and pthread_sigmask(), which are used to set the mask set.
sa_handler   _u._sa_handler Defines the simplified writing used to indicate the sa_handler.sa_handler field in sigaction.
sa_sigaction   _u._sa_sigaction Defines the simplified writing used to indicate the *sa_handler.sa_sigaction* field in sigaction.
SIG_HOLD   ((void (*)(int)) 2) Defines the function behaviors such as sigset() and adds a specified signal to the process signal mask without changing the current processing mode of the signal.
sa_handler   sa_handler.sa_handler Defines the simplified writing used to indicate the *sa_handler.sa_handler* field in sigaction.
sa_sigaction   sa_handler.sa_sigaction Defines the simplified writing used to indicate the *sa_handler.sa_sigaction* field in sigaction.
SIGEV_SIGNAL   0 Sets the notification method in sigevent: signal notification.
SIGEV_NONE   1 Sets the notification method in sigevent: no notification.
SIGEV_THREAD   2 Sets the notification method in sigevent: thread notification.
SIGRTMIN   (libc_current_sigrtmin()) Start of a reliable signal.
SIGRTMAX   (libc_current_sigrtmax()) End of a reliable signal.
SIG_ERR   ((sighandler_t)-1) Defines the value returned when a function such as signal() fails.
SIG_DFL   ((sighandler_t)0) Defines the default signal processing mode.
SIG_IGN   ((sighandler_t)1) Defines the signal processing mode in which the signal is ignored.

Typedefs

Typedef Name Description
ucontext_t typedef struct __ucontext Describes the user execution context.
stack_t typedef struct sigaltstack Describes a signal stack.
sighandler_t) (int) typedef void(* Function pointer of signal handler.

Functions

Function Name Description
kill (pid_t pid, int sig) int Sends a signal to a specified process.
sigemptyset (sigset_t set) int Clears all signals in a specified signal set.
sigfillset (sigset_t set) int Adds all signals to a specified signal set.
sigaddset (sigset_t set, int signum) int Adds a signal to a specified signal set.
sigdelset (sigset_t set, int signum) int Delete a signal from a specified signal set.
sigismember (const sigset_t set, int signum) int Checks whether a signal is in the signal set.
sigprocmask (int how, const sigset_t restrict set, sigset_t *restrict oldset) int Changes the signal mask of the calling thread.
sigsuspend (const sigset_t mask) int Sets mask as the signal mask set of the current process and suspends the process until a signal processing action is triggered.
sigaction (int signum, const struct sigaction restrict act, struct sigaction *restrict oldact) int Checks or changes the processing action associated with a specified signal. Do not use the process creation function or thread creation function in the registered callback processing function. Otherwise, the process is abnormal. For example, do not use the fork or pthread_create function.
sigpending (sigset_t set) int Obtains the signal suspended by the current thread.
sigwait (const sigset_t restrict set, int *restrict sig) int Suspends the calling thread and waits for the signal.
sigwaitinfo (const sigset_t __restrict set, siginfo_t restrict info) int Suspends the calling thread and waits for the signal, with a timeout period specified.
sigtimedwait (const sigset_t *restrict set, siginfo_t __restrict info, const struct timespec restrict timeout) int Suspends the calling thread and waits for the signal, with a timeout period specified.
pthread_sigmask (int how, const sigset_t *restrict set, sigset_t __restrict oldset) int Checks or changes the signal mask of the calling thread.
psignal (int signum, const char s) void Prints signal information.
sigpause (int signum) int Deletes the signal specified by signum from the signal mask of the calling process and suspends the process until the signal is received.
sighold (int signum) int Adds the signal specified by signum to the signal mask of the calling process.
sigrelse (int signum) int Deletes the signal specified by signum from the signal mask of the calling process.
sigisemptyset (const sigset_t set) int Checks whether the signal set is empty.
sigorset (sigset_t dest, const sigset_t left, const sigset_t right) int Adds the union set of left and right to dest.
sigandset (sigset_t dest, const sigset_t left, const sigset_t *right) int Adds the intersection of left and right to dest.
signal (int signum, sighandler_t handler) sighandler_t Changes the processing action of a specified signal. Do not use the process creation function or thread creation function in the registered callback processing function. Otherwise, the process is abnormal. For example, do not use the fork or pthread_create function.
raise (int signum) int Sends a signal to the calling process.