我有一个在 Linux 中开发的 C++ 应用程序。我正在分配一些动态内存并最终调用 forkpty()。子进程正在调用 execl(),正如我们所知,如果成功执行命令,execl() 永远不会返回。此外,正如我们所知,forkpty() 会复制所有父项的数据。因此,如果 child() 进程从不将控制权返回给我的应用程序以便最终进行内存清理,那么可以肯定地说最好不要在从子进程调用 execl() 时分配任何动态内存吗? ?真不敢相信我在这里找不到这个……提前致谢。
最佳答案
分配的内存是进程镜像的一部分;你打电话时
execl
,整个过程镜像被替换,并且任何内存在
它只是像其他部分一样“消失”,返回操作系统,
然后将在其他地方使用它。
关于c++ - forkpty() 和 execl() 子进程的堆内存管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15812831/