[問題] sigaction的mask問題

看板C_and_CPP (C/C++)作者 (ㄚ冰)時間7年前 (2018/11/22 01:18), 編輯推噓2(202)
留言4則, 3人參與, 7年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) Ubuntu Linux 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) clang, gun99 問題(Question): 原本用 signal() 可是後來發現我需要處理更多signal跟mask所以在測試sigaction 我只是一直 fork 跟 exit 然後用自己的 handler 去回收 然後發現還有很多zombie清不乾淨 程式碼(Code): http://codepad.org/VYcuxlcU 補充說明(Supplement): 試過sigaddset了,waitpid也試過no flag,還是是我對他的mask行為有錯 我是以為它會把他們block直到handler結束,還是有別的方式能處理呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.180.161 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1542820724.A.9B8.html

11/22 14:40, 7年前 , 1F
11/22 14:40, 1F

11/24 01:39, 7年前 , 2F
還在block中signal又收到重複時,後到的會被前面的合併掉
11/24 01:39, 2F

11/24 01:41, 7年前 , 3F
除非是SIGUSR系列,那就保證送出幾個signal就會收到幾個
11/24 01:41, 3F

11/24 02:43, 7年前 , 4F
不用 handler 直接 SIG_IGN 不行嗎?
11/24 02:43, 4F
文章代碼(AID): #1RzPDqcu (C_and_CPP)
文章代碼(AID): #1RzPDqcu (C_and_CPP)