我需要一些幫助,msgrcv共存......我需要能夠收到這樣的消息:Ç - 讓msgrcv與信號
while(1){
int status = msgrcv(qid, &msg, sizeof(msg.data), user_id,0)
if(status < 0) { perror("something wrong..."); exit(1); }
}
而且還某處代碼:
void stuff_to_do(int signal){
// ....
}
//...
signal(SIGQUIT, stuff_to_do);
但我得到一箇中斷系統調用,可能是因爲信號殺死了msgrcv或類似的東西。 我該如何解決這個問題?我應該fork()並在一個進程中執行msgrcv並在另一個進程上執行這些任務?或者,還有更好的方法? 感謝您的幫助!
不要嘗試fork()分割任務,這隻會讓事情變得複雜。無論調用msgrcv()的進程是否仍然可以接收信號並中斷。 – e0k
@ e0k是的,這是真的......我認爲它會解決它,但它不會,因爲我需要停止帶信號的while(1)。謝謝! –