我不想使用fork(),因爲它增加了一層我希望避免的IPC管理。我想用pthread。我已經看到了克隆的strace,並且我不想開始以clone()級別的細節管理線程。當父母退出時,希望線程不會死亡 - linux
給他們的名字:A =主線程,B =工作線程。
我希望B在A離開時能夠從A獲得信號。 A可以爲此註冊一個atexit()。
A可能會從abort()或者甚至SIGSEGV或其他終端信號中消失。 B的工作就是記錄日誌:A和B共享一個容器,日誌信息由A創建。如果A死了,我想讓B完成記錄,然後退出。
現在,如果A退出,B退出,並且丟失了日誌隊列中剩下的任何內容。
所以我的問題是這樣的:有沒有辦法使B更有彈性,所以它堅持周圍,不死與A?
pthread_join是你正在尋找,如果我理解正確。父母應該執行pthread_join(CHILD_PID) – galchen
@galchen:一個'pthread_join()'調用如何讓你等待子進程*? –
「pthread_join()函數暫停調用線程的執行,直到目標線程終止,除非目標線程已終止。」 – galchen