カスタム信号が2つしかないのはなぜですか?

カスタム信号が2つしかないのはなぜですか?

Linuxシステムで定義されているシグナルのリストには、カスタムシグナル(とSIGUSR1SIGUSR2の2つのシグナルがあります。特定の状況では、他の信号が放出または捕捉されるが、SIGUSRはユーザアプリケーションに委ねられる。

それでは、なぜ2つの信号しかありませんか?

答え1

歴史的に、Unixには2つの信号しかありませんでしたが、現代のシステムにはリアルタイム信号がありますSIGRTMINSIGRTMAX

シグナルAPIの奇妙で移植不可能な意味のために、シグナルがパイプなどの他の通信メカニズムよりも優先されるユースケースはほとんどありません。したがって、新しい信号番号を割り当てる必要はないと考えられました。

答え2

信号は単に原始的な通信手段を提供するだけです。特に信号に情報を添付することはできません。受信者は信号番号だけを知り、送信者の身元は不明です。複数の信号を1つにまとめることができます。これらの制限をすべて考慮すると、信号の用途はあまりありません。

より複雑な目的のために、パイプやソケットなどのより複雑な相互作用手段を使用してください。

関連情報