raise
From cppreference.com
| Defined in header <signal.h>
|
||
int raise( int sig );
|
||
Sends signal sig to the program. The signal handler, specified using signal(), is invoked.
If the user-defined signal handling strategy is not set using signal() yet, it is implementation-defined whether the signal will be ignored or default handler will be invoked.
Parameters
| sig | - | the signal to be sent. It can be an implementation-defined value or one of the following values:
|
Return value
0 upon success, non-zero value on failure.
Example
Run this code
#include <signal.h>
#include <stdio.h>
const char* signal_to_string(int signal)
{
switch(signal)
{
#define SIG_CASE(sig) case sig: return #sig;
SIG_CASE(SIGABRT)
SIG_CASE(SIGFPE)
SIG_CASE(SIGILL)
SIG_CASE(SIGINT)
SIG_CASE(SIGSEGV)
SIG_CASE(SIGTERM)
#undef SIG_CASE
default: return "unknown";
}
}
volatile sig_atomic_t gSignalStatus;
void signal_handler(int signal)
{
gSignalStatus = signal;
}
int main(void)
{
signal(SIGINT, signal_handler);
printf("Signal value: %s\n", signal_to_string(gSignalStatus));
printf("Sending signal: %s\n", signal_to_string(SIGINT));
raise(SIGINT);
printf("Signal value: %s\n", signal_to_string(gSignalStatus));
}
Output:
Signal value: unknown
Sending signal: SIGINT
Signal value: SIGINT
References
- C23 standard (ISO/IEC 9899:2024):
- 7.14.2.1 The raise function (p: 286-287)
- C17 standard (ISO/IEC 9899:2018):
- 7.14.2.1 The raise function (p: 194-195)
- C11 standard (ISO/IEC 9899:2011):
- 7.14.2.1 The raise function (p: 267)
- C99 standard (ISO/IEC 9899:1999):
- 7.14.2.1 The raise function (p: 248)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.7.2.1 The raise function
See also
| sets a signal handler for particular signal (function) | |
C++ documentation for raise
| |