Process
信號處理是否是程序的屬性?
通過閱讀標準,我了解到:
- 信號處理是一個程序的所有執行緒共享的屬性;
- 信號遮罩是每個執行緒的屬性。
但是,標準將以下內容(在 2018 版基本卷中,第 3.210 節實時程序)列為“程序內所有執行緒之間共享的系統資源”:
- 程序 ID、父程序 ID、程序組 ID、會話成員資格、
- 真實、有效和保存的使用者和組 ID 以及補充組 ID,
- 目前工作目錄,根目錄,
- 遮罩,
- 文件描述符。
列表中缺少信號處理。
是否正確地說:信號處理是與過程相關的屬性?或者是否有原因將其排除在上述列表之外?
答案是肯定的:信號處理在程序中的所有執行緒之間共享。
它從列表中“被排除在外”的原因是信號處理程序實際上並不是程序的“屬性”或“資源”。你在任何地方都看不到它
/proc<pid>/
。這就像說函式、全域變數或一般記憶體是程序的“共享屬性”——它只是“程序”定義的一部分。