2010-11-26 46 views
1

我在unix平臺上。兒童進程中的mem泄漏怎麼辦

在進程終止時清理進程帶內存的內存。

怎麼樣一個過程,產生了一個孩子,其中一個孩子有一個memleak。 在子進程終止時是否清理泄漏的內存?或者現在這個記憶會與父進程保持一致。

感謝

回答

8

由子進程分配的內存只存在於子進程的虛擬地址空間,而不是父母。一旦子進程終止或通過exec功能家族中的一個取代新的程序映像,它就會被釋放。

這與共享公共虛擬地址空間的線程形成鮮明對比,在線程退出並保持其他線程可用的情況下,在新線程中進行的分配將保持不變。

+0

+1雖然你應該提及一些像`vfork`和`clone`這樣的調用導致共享地址空間的事實。 – casablanca 2010-11-26 02:27:25