Signal.h
A la biblioteca estàndard C, el processament de senyals defineix com un programa gestiona diversos senyals mentre s'executa. Un senyal pot informar d'algun comportament excepcional dins del programa (com ara la divisió per zero), o un senyal pot informar d'algun esdeveniment asíncron fora del programa (com algú que toca una tecla d'atenció interactiva d'un teclat).[1] Senyals estàndardL'estàndard C defineix només 6 senyals. Tots estan definits a la capçalera
La implementació pot especificar senyals addicionals a la capçalera ManipulacióEs pot generar un senyal cridant al sistema Un controlador de senyal és una funció que l'entorn objectiu crida quan es produeix el senyal corresponent. L'entorn de destinació suspèn l'execució del programa fins que el controlador del senyal retorni o crida a Els controladors de senyal es poden configurar amb Si el senyal informa d'un error dins del programa (i el senyal no és asíncron), el controlador del senyal pot acabar cridant Funcions
Exemple d'ús#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
static void catch_function(int signo) {
puts("Interactive attention signal caught.");
}
int main(void) {
// Set above function as signal handler for the SIGINT signal:
if (signal(SIGINT, catch_function) == SIG_ERR) {
fputs("An error occurred while setting a signal handler.\n", stderr);
return EXIT_FAILURE;
}
puts("Raising the interactive attention signal.");
if (raise(SIGINT) != 0) {
fputs("Error raising the signal.\n", stderr);
return EXIT_FAILURE;
}
puts("Exiting.");
return EXIT_SUCCESS;
// exiting after raising signal
}
Referències
|
Portal di Ensiklopedia Dunia