Signal.h

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].

  1. «signal.h, signal - base signals». Consultado em 5 de Novembro de 2014. Arquivado do original em 5 de julho de 2010 
  2. «signal(2) - Linux man page» (em inglês). Linux Documentation. Consultado em 5 de Novembro de 2014 
  3. «BSD Library Functions Manual: raise(3)». Consultado em 5 de Novembro de 2014 
  4. «kill(2) - Linux man page» (em inglês). Linux Documentation. Consultado em 5 de Novembro de 2014 
  5. «Tópicos em Sistemas Operacioais: Processos e Sinais» (PDF). Consultado em 5 de Novembro de 2014  [ligação inativa]
  6. «MC504/MC514 - Sistemas Operacionais: Processos e Sinais» (PDF). Consultado em 5 de Novembro de 2014 
  7. «The Open Group Base Specifications Issue 7: signal - signal management». The Open Group. Consultado em 5 de Novembro de 2014 

Signal.h

Dodaje.pl - Ogłoszenia lokalne