Signal.h
signal.h es un archivo de cabecera definido en la Biblioteca estándar de C para especificar como un programa maneja señales mientras se ejecuta. Una señal puede reportar un comportamiento excepcional en el programa (tales como la división por cero ), o una señal puede reportar algún evento asíncrono fuera del programa (como alguien está pulsando una tecla de atención interactiva en el teclado)

Una señal puede ser generada llamando a raise (para enviar una señal al proceso actual) o kill (para enviar una señal a cualquier proceso). Cada implementación define lo que genera las señales (en su caso) y en qué circunstancias las genera. Una implementación puede definir otras señales además de las que figuran en esta lista. La cabecera estándar <signal.h> pueden definir macros adicionales con nombres que empiezan con SIG para especificar los valores de señales adicionales. Todos los valores son expresiones constantes enteras >= 0.

Un manejador de la señal se puede especificar para todas las señales excepto dos (SIGKILL y SIGSTOP no puede ser atrapadas, bloqueadas o ignoradas). Un manejador de la señal es una función que el entorno de destino llama cuando se produce la señal correspondiente. El entorno de destino suspende la ejecución del programa hasta que vuelva la señal de controlador o llama a longjmp. Para una máxima portabilidad, un manejador de la señal asíncrona sólo debe:
 hacer llamadas (que tienen éxito) a la señal de la función
 asignar valores a los objetos de tipo volátiles sig_atomic_t
 devolver el control a la función que la llamó

Si la señal informa de un error en el programa (y la señal no es asincrónica), el manejador de la señal puede terminala llamando a abort, exit, o longjmp.

Funciones miembro 
 int raise(int sig). Envía una señal artificialmente.

 psignal(int sig, const char *s), devuelve a stderr una cadena que representa un número de señal. Esta en 4.3BSD, Solaris y Linux, pero no está especificada por POSIX o SUS.

En los mismos sistemas, string.h contiene la función no estándar strsignal(int sig) que opera de la misma forma que strerror.

 void* signal(int sig, void (*func)(int)), establece las medidas adoptadas cuando el programa recibe la señal sig. Si el valor de func es SIG_DFL, se usará el manejo por defecto para esa señal. Si el valor de func es SIG_IGN, la señal será ignorada. De lo contrario se apuntará a una función manejador de señal que se llamará cuando la señar se active.

Tipos miembro 
typedef i-type sig_atomic_t

Macros miembro 

 SIG_DFL - Usado para seleccionar el manejo por defecto.
 SIG_IGN - Usado para manejar una señal ignorándola.
 SIG_ERR - Un número usado para errores.

Constantes Miembro

Véase también 
 Lenguaje de programación C

Biblioteca estándar de C
Cabeceras de C
signal.h es un archivo de cabecera definido en la Biblioteca estándar de C para especificar como un programa maneja señales mientras se ejecuta . Una señal puede reportar un comportamiento excepcional en el programa ( tales como la división por cero ) , o una señal puede reportar algún evento asíncrono fuera del programa ( como alguien está pulsando una tecla de atención interactiva en el teclado ) Una señal puede ser generada llamando a raise ( para enviar una señal al proceso actual ) o kill ( para enviar una señal a cualquier proceso ) . Cada implementación define lo que genera las señales ( en su caso ) y en qué circunstancias las genera . Una implementación puede definir otras señales además de las que figuran en esta lista . La cabecera estándar <signal.h> pueden definir macros adicionales con nombres que empiezan con SIG para especificar los valores de señales adicionales . Todos los valores son expresiones constantes enteras >= Un manejador de la señal se puede especificar para todas las señales excepto dos ( SIGKILL y SIGSTOP no puede ser atrapadas , bloqueadas o ignoradas ) . Un manejador de la señal es una función que el entorno de destino llama cuando se produce la señal correspondiente . El entorno de destino suspende la ejecución del programa hasta que vuelva la señal de controlador o llama a longjmp . Para una máxima portabilidad , un manejador de la señal asíncrona sólo debe : hacer llamadas ( que tienen éxito ) a la señal de la función asignar valores a los objetos de tipo volátiles sig_atomic_t devolver el control a la función que la llamó Si la señal informa de un error en el programa ( y la señal no es asincrónica ) , el manejador de la señal puede terminala llamando a abort , exit , o longjmp . Funciones miembro int raise( int sig ) . Envía una señal artificialmente . psignal( int sig , const char *s ) , devuelve a stderr una cadena que representa un número de señal . Esta en3BSD , Solaris y Linux , pero no está especificada por POSIX o SUS . En los mismos sistemas , string.h contiene la función no estándar strsignal( int sig ) que opera de la misma forma que strerror . void* signal( int sig , void ( *func) ( int ) ) , establece las medidas adoptadas cuando el programa recibe la señal sig . Si el valor de func es SIG_DFL , se usará el manejo por defecto para esa señal . Si el valor de func es SIG_IGN , la señal será ignorada . De lo contrario se apuntará a una función manejador de señal que se llamará cuando la señar se active . Tipos miembro typedef i-type sig_atomic_t Macros miembro SIG_DFL - Usado para seleccionar el manejo por defecto . SIG_IGN - Usado para manejar una señal ignorando la . SIG_ERR - Un número usado para errores . Constantes Miembro Vea se también Lenguaje de programación C Biblioteca estándar de C Cabeceras de C