History
為什麼只有兩個使用者定義的信號?
在 linux 系統中定義的信號列表中,有兩個信號表示為使用者定義的信號 (
SIGUSR1
和SIGUSR2
)。在特定情況下會引發或擷取其他信號,但 SIGUSR 留給使用者應用程序使用。那麼為什麼只有兩個信號呢?
歷史上,Unix只有這兩個信號,但現代系統有實時信號
SIGRTMIN
……SIGRTMAX
。由於信號 API 的古怪和不可移植的語義,幾乎沒有使用信號比管道等其他通信機制更可取的案例。因此,分配新的信號編號從未被認為是必要的。
信號僅提供一種原始的通信方式。特別是,無法將任何資訊附加到它們。接收者只知道信號號,不知道發送者的身份。多個信號可以合併為一個。鑑於所有這些限制,信號沒有那麼多有用的用途。
對於更複雜的目的,使用更複雜的互動方式,例如管道或套接字。