History

為什麼只有兩個使用者定義的信號?

  • September 20, 2012

在 linux 系統中定義的信號列表中,有兩個信號表示為使用者定義的信號 (SIGUSR1SIGUSR2)。在特定情況下會引發或擷取其他信號,但 SIGUSR 留給使用者應用程序使用。

那麼為什麼只有兩個信號呢?

歷史上,Unix只有這兩個信號,但現代系統有實時信號SIGRTMIN…… SIGRTMAX

由於信號 API 的古怪和不可移植的語義,幾乎沒有使用信號比管道等其他通信機制更可取的案例。因此,分配新的信號編號從未被認為是必要的。

信號僅提供一種原始的通信方式。特別是,無法將任何資訊附加到它們。接收者只知道信號號,不知道發送者的身份。多個信號可以合併為一個。鑑於所有這些限制,信號沒有那麼多有用的用途。

對於更複雜的目的,使用更複雜的互動方式,例如管道或套接字。

引用自:https://unix.stackexchange.com/questions/48582