forkpty()和execl()上的子进程堆内存管理? 我在Linux开发了一个C++应用程序。我正在分配一些动态内存并最终调用forkpty()。子进程正在调用execl(),我们知道,如果成功执行该命令,execl()将永远不会返回。此外,正如我们所知,forkpty()复制所有父数据。因此,如果child()进程永远不会将控制权返回给我的应用程序,以便最终进行内存清理,那么可以安全地说,在从子进程调用execl()时,最好不要分配任何动态内存???我不敢相信我在这里找不到这个。。。提前感谢。
分配的内存是进程映像的一部分;当你打电话的时候forkpty()和execl()上的子进程堆内存管理? 我在Linux开发了一个C++应用程序。我正在分配一些动态内存并最终调用forkpty()。子进程正在调用execl(),我们知道,如果成功执行该命令,execl()将永远不会返回。此外,正如我们所知,forkpty()复制所有父数据。因此,如果child()进程永远不会将控制权返回给我的应用程序,以便最终进行内存清理,那么可以安全地说,在从子进程调用execl()时,最好不要分配任何动态内存???我不敢相信我在这里找不到这个。。。提前感谢。,c++,linux,fork,C++,Linux,Fork,分配的内存是进程映像的一部分;当你打电话的时候 execl,整个进程映像将被替换,并且 它只是像它的其他部分一样“消失”,回到操作系统, 然后将在其他地方使用它 所有“分叉”进程内存作为execl()的一部分被释放(如果调用成功) 如果不是这样的话,在常规linux系统中会有大量内存泄漏,因为不分配内存几乎不可能编写任何复杂的东西,甚至有点复杂。例如,如果分配了execl()的参数,则在调用execl()之前不可能释放它们 可能重复的
execl
,整个进程映像将被替换,并且
它只是像它的其他部分一样“消失”,回到操作系统,
然后将在其他地方使用它 所有“分叉”进程内存作为execl()
的一部分被释放(如果调用成功)
如果不是这样的话,在常规linux系统中会有大量内存泄漏,因为不分配内存几乎不可能编写任何复杂的东西,甚至有点复杂。例如,如果分配了execl()
的参数,则在调用execl()
之前不可能释放它们 可能重复的