我將fork()父進程傳遞給子進程,由fork()返回的PID存儲在父進程的內存中,然後時間流逝並且子進程終止;現在我可以確定存儲在父內存中的PID值是否仍然指向相同的分叉子,並且如何確保此PID不會引用具有相同PID的不同進程,這最終可能在孩子之後產生終止?確保PID是指正確的過程
1
A
回答
3
操作系統不能重用孩子的PID,直到父母已確認它知道孩子已停止執行。
父母使用wait
和waitpid
調用進行確認。終止的孩子會處於「殭屍」狀態,而父母不會調用這些功能。在這些調用返回後,父級會知道如果有一個進程使用與孩子相同的PID運行,那麼它不是孩子。
爲了額外的安全,你可能需要checking the parent PID of the child process。
1
您可以:
- 呼叫
man 2 wait
父,得到通知,當孩子還沒有死; - 在父母與子女之間創造你的投票協議。如果孩子仍然是一樣的,它必須迴應父母的投票,其價值與產卵後的價值相同。你可以爲此使用一些POSIX IPC機制。當父代只有一個執行線程並且不能在父代中使用線程時,這會很有用。
相關問題
- 1. 的Windows 10,殺子過程中,不能得到正確的PID
- 2. 確保單個課程實例的正確方法是什麼?
- 3. 如何確保存儲過程正確執行?
- 4. 創建正確的過程
- 5. 確保向量中的共享指針被正確推回
- 6. 確保正確回寫SharedPreference
- 7. 確保MAVEN_HOME設置正確
- 8. 在異常情況下確保「事務性過程」的正確工作流程
- 9. 確定終止進程的PID
- 10. ASP.NET正確部署過程
- 11. 確保通過指定程序集調用程序集
- 12. '這'不是指正確的方法
- 13. 控制公式以確保所有過濾的數據是正確的
- 14. 確保Collection._ensureIndex通過正確的順序領域
- 15. 是正確的
- 16. WINSDK:確定任意pid是否標識Windows上正在運行的進程
- 17. 確保返回值不是指針
- 18. 確保url格式正確的Python urllib2
- 19. 確保正確的日期/時間
- 20. 如何確保使用正確的DateTime?
- 21. 如何確保用戶輸入的格式是正確的python
- 22. JAVA:骰子游戲,確保打印的是正確的
- 23. 需要確保我的AJAX腳本是樹立正確的
- 24. 這是通過指針訪問列的正確方法嗎?
- 25. OOP編程使用javascript:確保不管對象是如何確保不管它指向正確的事的 對象是如何被實例化實例化
- 26. 正確保存XDocument
- 27. 確保URL是通過JavaScript的location.replace()
- 28. 只是確保
- 29. 需要正確的指導
- 30. 正確的指示按鈕?
請參閱['waitpid'](http://linux.die.net/man/3/waitpid)函數。 –