Biblioteca padrão do C |
signal.h é um arquivo cabeçalho da biblioteca padrão da linguagem de programação C que contém protótipos para funções e definições para receber e manipular sinais. Sinais são notificações assíncronas de eventos diversos como falhas de hardware ou recepção de caracteres no terminal[1] que podem ser utilizadas como uma forma de comunicação entre processos.
A função signal()
associa um comportamento que o processo deve ter ao receber o sinal, que pode ser o comportamento padrão, ignorar o sinal ou executar uma função específica. Em especial os sinais SIGKILL e SIGSTOP não podem ser tradados com uma função ou ignorados[2].
Também são providas as funções raise()
e kill()
. A primeira envia um sinal para o próprio processo[3] e a segunda envia um sinal para um outro processo ou para um outro grupo de processos[4].
A função associada ao recebimento de um sinal é chamada tratadora de sinais[5][6]. A execução do processo é suspensa até que a função retorne ou chame longjmp. O comportamento de um processo após ignorar os sinais SIGFPE (exceção de ponto flutuante), SIGILL (instrução ilegal) e SIGSEGV (falha de segmentação) que não tenha sido gerado por kill()
ou raise()
não é definido conforme o padrão POSIX[7].