signal.h
Macros SIG_xxx y SIGxxxx ANSI C
#define SIG_DFL #define SIG_ERR #define SIGABRT #define SIGFPE #define SIGILL #define SIGSEGV #define SIGTERM
Estos expanden a expresiones constantes con valores únicos que tienen tipo compatible con el segundo argumento a y el valor de retorno de la función signal, y cuyo valor se compara inigualmente a la localización de cualquier función declarable; y los siguientes, cada cual expande a una expresión entera positiva y constante que es número de señal para la condición especificada:
SIGABRT | Terminación anormal, tal como es iniciada por la función abort |
SIGFPE | Una Operación aritmética errónea, tal como es dividir entre cero o una operación resultando en un "desbordamiento" |
SIGILL | Detección de un proceso inválido de una función, tal como es una instrucción ilegal |
SIGINT | Recibo de señal de atención interactiva |
SIGSEGV | Acceso inválido a almacenaje |
SIGTERM | Una petición a terminar enviado a un programa |
Una implemntación no necesita generar ninguna de estas señales, excepto como un resultado de llamadas explícitas a la función raise.
Ejemplo:
#define SIG_DFL ((void (*)(int))(0)) #define SIG_ERR ((void (*)(int))(1)) #define SIG_IGN ((void (*)(int))(-1)) #define SIGABRT 288 #define SIGFPE 289 #define SIGILL 290 #define SIGSEGV 291 #define SIGTERM 292 #define SIGINT 295 |
DJGPP |
#ifdef __cplusplus typedef void _USERENTRY (_EXPFUNC * _CatcherPTR)(int); #else typedef void _USERENTRY (_EXPFUNC * _CatcherPTR)(); #endif #define SIG_DFL ((_CatcherPTR)0) /* Default action */ #define SIG_IGN ((_CatcherPTR)1) /* Ignore action */ #define SIG_ERR ((_CatcherPTR)-1) /* Error return */ #define SIGABRT 22 #define SIGFPE 8 /* Floating point trap */ #define SIGILL 4 /* Illegal instruction */ #define SIGINT 2 #define SIGSEGV 11 /* Memory access violation */ #define SIGTERM 15 |
Borland |
typedef void (*_p_sig_fn_t)(int nSig); #define SIG_DFL ((_p_sig_fn_t) 0) #define SIG_IGN ((_p_sig_fn_t) 1) #define SIG_ERR ((_p_sig_fn_t) -1) #define SIGINT 2 /* Interactive attention */ #define SIGILL 4 /* Illegal instruction */ #define SIGFPE 8 /* Floating point error */ #define SIGSEGV 11 /* Segmentation violation */ #define SIGTERM 15 /* Termination request */ #define SIGABRT 22 /* Abnormal termination (abort) */ |
Dev-C++ |