2012-10-18 107 views
8

我寫一個簡單的程序中,父子進程交替打印到文件SIGINT信號。我已經設法使用用戶定義的信號來做到這一點。現在我想處理SIGINT信號。一旦CTRL-C收到父母必須發送終止信號給孩子,孩子應該那麼應該終止,最後家長應終止。忽略子進程

我的問題是,爲了使這項工作正常我只能從父趕SIGINT信號和孩子忽略它。這樣對嗎?如果是的話,這樣做的提示?

+0

您可能會發現這個有趣的:http://www.linuxprogrammingblog.com/all-about-linux-signals –

回答

14

電話:

signal(SIGINT, SIG_IGN); 

從孩子的過程,會使孩子過程中忽略SIGINT信號。從man signal

如果配置設置爲SIG_IGN,則忽略信號。

+0

好吧,我知道SIG_IGN行動,但我只希望孩子忽略和家長漁獲時信號,終止孩子。 – SpyrosR

+0

@SpyrosR,所以只能讓小孩打電話嗎? – hmjd

+0

是的,我設定了兩個處理功能,一個用於父用於捕獲信號併發送SITERM信號孩子和一個兒童忽視的信號,但我不能讓它工作。如果例如按CTRL-C,而孩子是「工作「它確實調用了子句柄函數,但它也調用了SIGINT信號的父句柄函數。 – SpyrosR