Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
forkpty()和execl()上的子进程堆内存管理? 我在Linux开发了一个C++应用程序。我正在分配一些动态内存并最终调用forkpty()。子进程正在调用execl(),我们知道,如果成功执行该命令,execl()将永远不会返回。此外,正如我们所知,forkpty()复制所有父数据。因此,如果child()进程永远不会将控制权返回给我的应用程序,以便最终进行内存清理,那么可以安全地说,在从子进程调用execl()时,最好不要分配任何动态内存???我不敢相信我在这里找不到这个。。。提前感谢。_C++_Linux_Fork - Fatal编程技术网

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()
之前不可能释放它们

可能重复的