C++ Standard Library C++ STL Library

C++ <csignal> - SIG_DFL, SIG_IGN



The C++ <csignal> SIG_DFL, SIG_IGN macros expand into integral expressions that are not equal to an address of any function. The macros define signal handling strategies for signal() function.

MacrosDescription
SIG_DFL (Default handling) The signal is handled by the default action for that particular signal.
SIG_IGN (Ignore signal) The signal is ignored and the code execution will continue even if not meaningful.

Definition in the <csignal> header file is:

#define SIG_DFL   /* implementation defined */
#define SIG_IGN   /* implementation defined */

Example:

The example below shows how a signal is handled by default.

#include <csignal>
#include <cstdio>
 
int main(void) {
  //using the default signal handler
  raise(SIGTERM);

  //this will never be reached
  printf("Exit main()\n");

  return 0;
}

The output of the above code will be:

Terminated

Example:

The example below shows how to use SIG_IGN macro function to ignore a signal.

#include <csignal>
#include <cstdio>
 
int main(void) {
  //ignoring the signal
  signal(SIGTERM, SIG_IGN);

  raise(SIGTERM);

  printf("Exit main()\n");

  return 0;
}

The output of the above code will be:

Exit main()

❮ C++ <csignal> Library