Debug心得: signal處理後要還原

在做signal的handler的設定時
最好在用完想要的功能之後要還原回原本系統設定的signal預設值

BUG:
        我在server的地方因為用fork來處理每一個新client
        所以我在fork之前都做了signal(SIGCHLD,SIG_IGN);
        但就因為這樣,所以我之後wait到的child pid都是-1(系統設定的,wait的man page有寫)
        得到這種東西: strerror(errno)=No child processes
        所以我就讀不出child process的exit stauts
 SOLUTION:
        在fork完之後,給個處理新client的process一開始就做
        signal(SIGCHLD,SIG_DFL);
        就可以了

好了,今天的筆記到此結束
希望有幫助未來遺忘這些的自己,以及需要的人

留言

這個網誌中的熱門文章

python的list與numpy的array和matrix的關係