Función:
Función raise
int raise(int señal);
Esta función envía una señal al parámetro señal que ejecutará el programa en ejecución.
Valor de retorno:
La función raise
devuelve cero, si la operación se realizo con éxito, y un valor distinto a cero, si la operación falla.
Ejemplo:
Función signal
void (signal(int señal, void (func)(int))(int);
Elige una de las tres formas que ha de manejar la cantidad de señal en señal
. Si el valor de func es SIG_DFL, la señal se controlará por defecto. Si el valor de func
es SIG_IGN
, la señal será ignorada. Si no, func
apuntará a una función que será llamada cuando se produzca una señal. Dicha función llamará a un controlador de señales.
Cuando se produce una señal, y si func
apunta a una función, primeramente un equivalente a signal
(señal, SIG_DFL
); se ejecuta un bloqueo de señal, definido según la implementación, se realizara. (Si el valor de señal es SIGILL
, en caso de que se reinicie SIG_DFL
que está definido según la implementación). A continuación la equivalente a (*func
)( señal
); se ejecutara. La función func
puede terminar mediante la ejecución de la sentencia return o llamando a las funciones abort
, exit
, o longjmp
. Si func
ejecuta una sentencia de retorno y el valor de la señal era SIGFPE
o cualquier otro valor definido según la implementación correspondiendo a una excepción calculada, el comportamiento no está definido. De lo contrario, el programa continúa la ejecución desde el momento de interrupción.
Si el resultado de la señal se produce llamando a las funciones otra manera {f:abort}
o raise
, el comportamiento no está definido si el controlador de señales llama a cualquier función de la librería estándar distinta a sí misma, la función signal
(con el primer argumento de la señal numérica correspondiendo a la señal que causó la invocación al controlador), o hace referencia a cualquier objeto con una duración de almacenamiento estático distinto al asignado a un valor de una variable de duración estática de tipo volatil sig_atomic_t
. Además, si la llamada a la función signal
resulta ser un retorno de SIG_ERR
, el valor de errno
será indeterminado.
Al comienzo del programa, el equivalente a signal
(señal, SIG_IGN
); puede ser ejecutada por algunas señales seleccionadas de una manera definida según la implementación; el equivalente a signal
(señal, SIG_DFL
); se ejecutara en todas las demás señales definidas por la implementación.
Valor de retorno:
La función signal
devuelve el valor de func
en la llamada más reciente a signal
para la señal especificada, señal
, si la operación fue realizada con éxito. Si falla, entonces devuelve {m:SIG_ERR:SIG_ERR}
y se guarda un valor positivo en errno
.
Ejemplo:
Debe estar conectado para enviar un comentario.