0
我處理的一些問題,我有一個在處理信號的功能,這樣的:行爲時,多個信號發送
void sigChld(int noSig)
{
//some action here
}
void F1() // some child process
{
struct sigaction action;
.... // initialisation of the structure with sigChld as the function handler
sigaction(SIGCHLD, &action, 0);
while(1)
callToFunction();
}
在我的子進程F1,我處理程序連接到sigCHLD sigCHld()然後我做callToFunction()創建另一個進程並做一些處理。在執行結束時,它向我發送一個SIGCHLD,我需要在我的處理程序中對待它。
現在我的問題是:我需要callToFunction()的返回值,所以我想在執行一些操作之前在sigchld的處理程序中使用waitpid。但是如果在waitpid()或動作中,callToFunction()發送另一個信號呢?當前的處理程序會停止嗎?或將繼續執行,然後處理下一個信號?
在我的問題中,我需要一個接一個地完整處理信號,就好像我正在並行執行處理程序一樣。