#include <dk.h>
#include <dktypes.h>
Go to the source code of this file.
Defines | |
#define | DK_SIGNAL_SIGACTION 3 |
dksignal_available() result: sigaction() available. | |
#define | DK_SIGNAL_TYPE_SIGSET 2 |
dksignal_available() result: sigset() available. | |
#define | DK_SIGNAL_SIGNAL 1 |
dksignal_available() result: signal() available. | |
#define | DK_SIGNAL_NONE 0 |
dksignal_available() result: No signal handling available. | |
#define | dksignal_refresh(i, disp) |
Refresh signal handler. | |
#define | dksignal_return(i) |
Return from signal handler. | |
Functions | |
dk_signal_disp_t | dksignal_set (int signo, dk_signal_disp_t disp) |
Set signal handler. | |
int | dksignal_available (void) |
Check available signal handling mechanisms. |
This module provides data types and functions for signal handling. There are at least 3 signal handling function groups on Unix/Linux systems:
The code example below shows how to use the functions in this module:
volatile int sigint_received = 0; dk_signal_ret_t sigint_handler(int signo) { dksignal_refresh(signo, sigint_handler); sigint_received = 1; dksignal_return(0); } int main(int argc, char *argv[]) { dk_signal_disp_t disp_int = NULL; switch(dksignal_available()) { case DK_SIGNAL_NONE: { printf("Warning: No signal handling available.\n"); } break; case DK_SIGNAL_SIGNAL: { printf("Warning: Signal handling uses signal() function.\n"); } break; } disp_int = dksignal_set(SIGINT, sigint_handler); ... do something taking a while ... if(disp_int) dksignal_set(SIGINT, disp_int); }
#define DK_SIGNAL_NONE 0 |
dksignal_available() result: No signal handling available.
#define DK_SIGNAL_SIGACTION 3 |
dksignal_available() result: sigaction() available.
#define DK_SIGNAL_SIGNAL 1 |
dksignal_available() result: signal() available.
#define DK_SIGNAL_TYPE_SIGSET 2 |
dksignal_available() result: sigset() available.
#define dksignal_refresh | ( | i, | |||
disp | ) |
Refresh signal handler.
The first instruction of a signal handler should be dksignal_refresh(signo, handler_fct).
#define dksignal_return | ( | i | ) |
Return from signal handler.
The last instruction of a signal handler should be dksignal_return(0).
int dksignal_available | ( | void | ) |
Check available signal handling mechanisms.
dk_signal_disp_t dksignal_set | ( | int | signo, | |
dk_signal_disp_t | disp | |||
) |
Set signal handler.
The function assigns the handler disp to signal signo and returns a pointer to the previous handler.