Namespaces
Variants

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:
defines signal types
(macro constant) [edit]

Return value

0 upon success, non-zero value on failure.

Example

#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) [edit]