popen管道执行程序并读取输出的替代方法

abr*_*hab 2 c++ popen

请为popen()执行shell命令然后读取输出提供一个好的替代方案。

编辑:替代必须没有fork()电话。因为我的服务器已经占用太多内存。然后ffmpeg还需要内存,并且进程大小会增加!而且我fork()每次都会将问题发送到内存权重服务器。

小智 5

如果您担心在派生时复制父进程的内存,则需要使用vfork()-“ fork”的特殊版本,该特殊版本不会复制父进程的内存,但是需要派生的进程立即发出execve()

  • @abrahab:请更仔细地阅读手册页。父母在孩子调用“ execve”后立即恢复。 (2认同)