我有一个shell脚本,像。
#!/bin/bash
echo "my string"
return 1
我有一个c++代码,我想要回声语句和执行状态。 我发现了一些例子,在这些例子中,我们可以使用: popen()
或 system()
两种方式都能满足一个要求,但不能同时满足两个要求。有什么建议怎么做?
fork()
+ exec()
将是运行另一个可执行文件的一个非常标准的方式(请 不要 曾经 使用 system()
这是一个安全问题 噩梦). 为了获得产卵进程输出的标准输出标准误差流,父进程将设置好的 pipe
来连接到这些流并读取它们。至于退出代码,你可以通过以下方式获得。waitpid()
(你会得到一个SIG_CHILD信号,所以要确保你已经安装了一个信号处理程序)。
我推荐你阅读一下 UNIX环境下的高级编程,第3版.