使用exec/fork运行外部进程
Use exec/fork to run external process
我正在使用c++并试图在外部进程中运行shell命令。下面是我到目前为止的代码:
pid_t pid;
pid = fork();
if(pid == 0){
execv(args[0],args);
} else {
wait();
}
我的第一个问题是,我需要从shell命令传递到exec的输出,我不知道如何得到它。在运行上面的代码后,主程序也重复了自己,我不确定为什么。
args[0]
可能是正在运行的程序的名称,因此它将分叉并执行自己。
为了收集输出,您需要安排显式传递它。Unix的pipe()
调用经常用于此。
相关文章:
- boost::进程间消息队列引发错误
- 可以从外部进程[C /Windows]移动/调整Windows
- 外部进程与线程和数据处理
- 从导致问题的java进程附加到外部c++进程
- 使用SetParent将窗口嵌入外部进程的各种问题
- 是否可以从外部进程注入和执行应用程序
- QT启动外部进程(激发并忘记)
- 将外部进程的输出管道传输到正在运行的脚本C++
- C++正在执行外部进程
- 从Qt程序运行外部进程,有一些更改
- 以编程方式限制外部进程资源
- 访问外部进程的内存
- 确定外部进程的主线程id (ReadProcessMemory - Err 299)
- 使用exec/fork运行外部进程
- 执行属于其他进程的外部功能
- 绕道 外部进程中的钩子"empty"功能不起作用
- 捕获外部进程的工作目录[Qt/WinAPI]
- 我可以使用DuplicateHandle使用外部进程的句柄吗
- 在c++的同一进程空间内执行外部可执行文件
- 从外部进程以编程方式更改WxWidget滑块