嗨 我有一個信號處理程序定義在一個文件中,從信號生成的地方。我定義了一個「靜態結構sigaction」來定義一個非靜態的信號處理程序。限制一個信號處理程序只捕獲來自它定義的特定文件的信號
我們知道使用「靜態」,我們也可以將範圍限制放到一個單獨的文件中,所以使用這種技術可以限制信號處理器只捕獲定義文件的信號。
我的「文件」 - File1,與其他文件鏈接 - File2,File2可以生成信號,不應該被File1處理程序捕獲。所以我可以實現這一點,如果我把「靜態結構sigaction」在File1中?
enter code here
File1.c
static struct sigaction;
void sigHandler(int sig); // also a handler for SIG_NO but should catch signals generated for only File1.c (sig handler is non-static)
File2.c
kill(getpid(), SIG_NO)
File1.c and File2.c are linked together.
我們可以有一些代碼來看看嗎? – 2011-04-21 05:38:18
它仍處於設計階段,所以我們沒有代碼。但我可以給一些簡報,將編輯上面,並把它。 – kingsmasher1 2011-04-21 05:39:33
也許你應該嘗試爲SIGINT添加一個處理程序,在該文件的開始處使用'signal(SIGINT,handler)'(應該在函數中定義),並且在從該函數返回之前使用'signal(SIGINT,SIG_DFL) ' – 2016-06-10 07:43:18