Process

信號處理是否是程序的屬性?

  • December 7, 2021

通過閱讀標準,我了解到:

  • 信號處理是一個程序的所有執行緒共享的屬性;
  • 信號遮罩是每個執行緒的屬性。

但是,標準將以下內容(在 2018 版基本卷中,第 3.210 節實時程序)列為“程序內所有執行緒之間共享的系統資源”:

  • 程序 ID、父程序 ID、程序組 ID、會話成員資格、
  • 真實、有效和保存的使用者和組 ID 以及補充組 ID,
  • 目前工作目錄,根目錄,
  • 遮罩,
  • 文件描述符。

列表中缺少信號處理。

是否正確地說:信號處理是與過程相關的屬性?或者是否有原因將其排除在上述列表之外?

答案是肯定的:信號處理在程序中的所有執行緒之間共享。

它從列表中“被排除在外”的原因是信號處理程序實際上並不是程序的“屬性”或“資源”。你在任何地方都看不到它/proc<pid>/。這就像說函式、全域變數或一般記憶體是程序的“共享屬性”——它只是“程序”定義的一部分。

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