我有一個我在Linux中開發的C++應用程序。我正在分配一些動態內存並最終調用forkpty()。子進程正在調用execl(),正如我們所知,如果execcl()成功執行該命令,它將永遠不會返回。此外,正如我們所知,forkpty()複製了所有父級的數據。因此,如果child()進程永遠不會將控制權返回給我的應用程序以便最終執行內存清除,那麼可以安全地說,從子進程調用execl()時最好沒有分配任何動態內存? ?我無法相信我在這裏找不到這個......先謝謝了。forkpty()和execl()的子進程的堆內存管理?
0
A
回答
1
分配的內存是過程映像的一部分;當您撥打 execl
時,整個過程映像將被替換,並且其中的任何內存都會像其餘部分一樣「簡單消失」,然後返回到操作系統 ,然後該操作系統將在其他地方使用該操作系統。
1
作爲execl()
(如果調用成功)的一部分,所有「分叉」進程內存被釋放。
如果情況並非如此,那麼在普通的linux系統中將會出現大量內存泄漏,因爲幾乎不可能在沒有分配內存的情況下寫入任何內容,例如,如果參數到execl()
被分配,您在撥打execl()
之前不可能釋放它們。
相關問題
- 1. 跨進程內存管理
- 2. 內存管理,堆損壞和C++
- 3. 堆碎片和Windows內存管理器
- 4. android以外的堆內存管理
- 5. 跨DLL的內存/堆管理
- 6. 進程和子進程信息(內存)
- 7. 進程內存vs堆 - JVM
- 8. 進程虛擬內存 - 堆棧和堆之間的空間
- 9. WPF應用程序中的內存管理和性能改進
- 10. C或C++堆內存管理實現
- 11. C++內存管理與堆分配和幀分配的區別
- 12. 用於運行進程的堆內存
- 13. 紅寶石使用堆棧進行內存管理嗎?
- 14. Linux內核進程管理
- 15. IOS內存和內存管理
- 16. UIAlertView和cocos2d內存管理
- 17. removeFromSuperview和內存管理
- 18. UIView和內存管理
- 19. NSString和NSData內存管理
- 20. UIPopoverController和內存管理
- 21. popToViewController和內存管理
- 22. HoughLinesP和opencv內存管理
- 23. 內存和範圍管理
- 24. 內存管理和Tkinter
- 25. iOS和內存管理
- 26. Uialertview和內存管理
- 27. memcpy和內存管理pcap
- 28. iPhone:CoreGraphics和內存管理
- 29. 內存管理,協議棧和堆問題
- 30. C++ STL內存管理:堆棧還是堆?
[在exec()更改程序映像之後malloc的內存會發生什麼變化?](http://stackoverflow.com/questions/5429141/what-happens-to-malloced-memory-after-exec -changes最節目圖像) – 2013-04-04 13:39:26