我在套接字編程中使用unix上的pthreads。當父線程正在等待它的孩子加入時,我在最後收到一條消息「Terminated」,這不是我從程序中打印出來的語句。線程加入中的終止消息
有沒有人可以幫助我,並可以告訴可能是什麼原因這條消息?
父母等待連接並且子線程開始退出時發生這種情況,但最終我收到了此消息。
感謝所有
我在套接字編程中使用unix上的pthreads。當父線程正在等待它的孩子加入時,我在最後收到一條消息「Terminated」,這不是我從程序中打印出來的語句。線程加入中的終止消息
有沒有人可以幫助我,並可以告訴可能是什麼原因這條消息?
父母等待連接並且子線程開始退出時發生這種情況,但最終我收到了此消息。
感謝所有
的「終止」消息是由你的shell印刷,因爲它發現你的應用程序是用SIGTERM
殺害。這可能是由於您的代碼中存在一個錯誤 - 我們需要查看源代碼才能找到它。
Terminated
常常是輸出程序的情況下發送的信號SIGTERM
:
開始這在一個終端:
$ sleep 10
Terminated
從另一個終端:
$ killall sleep -SIGTERM
我不完全肯定你的過程爲什麼收到SIGTERM
,但我想知道你的孩子是否撥打exit(2)
或直接調用,而不是調用pthread_exit(3)
或者其功能結束。
非常感謝這些信息,我從SIGTERM得到了提示,並且我能夠調試,因爲我使用SIGTERM發送kill(),但沒有使用signal()命令來捕獲該信號。 ....再次感謝 :) – Teotia 2011-03-25 08:54:20