0
假設我們請求共享內存並將其附加到我們程序的主進程。我們是否應該在分叉進程終止之前分離共享內存
該程序創建了多個進程。 正如shmat的說明所示:
在fork(2)後,子繼承附加的共享內存段。
因此,我們不必將共享內存附加到子進程。
但分離它呢?我們是否應該在孩子的代碼上做呢?
或者只是在主進程中分離共享內存並銷燬它就夠了?
假設我們請求共享內存並將其附加到我們程序的主進程。我們是否應該在分叉進程終止之前分離共享內存
該程序創建了多個進程。 正如shmat的說明所示:
在fork(2)後,子繼承附加的共享內存段。
因此,我們不必將共享內存附加到子進程。
但分離它呢?我們是否應該在孩子的代碼上做呢?
或者只是在主進程中分離共享內存並銷燬它就夠了?
分離共享內存段就像關閉打開的文件句柄 - 當進程終止(任意或不會)時,它由大多數操作系統內核自動執行,但良好的編程實踐要求您明確地執行。 –
@HristoIliev:這也是我的想法。離開它而不分離會導致懸掛指針。 – Chris