Por que existem apenas dois sinais definidos pelo usuário?

11

Na lista de sinais definidos em um sistema linux, existem dois sinais declarados como sinais definidos pelo usuário ( SIGUSR1 e SIGUSR2 ). Outros sinais serão levantados ou capturados em situações específicas, mas SIGUSRs são deixados para uso do aplicativo do usuário.

Então, por que apenas dois sinais?

    
por saeedn 19.09.2012 / 10:49

2 respostas

13

Historicamente, o Unix tinha apenas esses dois sinais, mas os sistemas modernos têm os sinais em tempo real SIGRTMIN ... SIGRTMAX .

Devido à semântica maluca e não suportável das APIs de sinal, quase não há caso de uso em que os sinais seriam preferíveis em relação a outros mecanismos de comunicação, como pipes. Portanto, alocar um novo número de sinal nunca foi visto como necessário.

    
por 19.09.2012 / 13:18
6

Os sinais fornecem apenas um meio primitivo de comunicação. Em particular, não há como anexar nenhuma informação a eles. O destinatário só conhece o número do sinal, não a identidade do remetente. Múltiplos sinais podem ser confundidos em um. Dadas todas essas restrições, não há muitos propósitos úteis para sinais.

Para fins mais complexos, use meios de interação mais complexos, como canos ou soquetes.

    
por 20.09.2012 / 02:12