【发布时间】:2016-10-26 21:46:54
【问题描述】:
经过几个小时的谷歌搜索,我仍然无法理解如何从 ACE_OS::execlp 命令获取结果。在这里,我需要获取的不是状态本身,而是输出结果。例如,如果我调用一些 bash 脚本并生成它的 stdout/stderr。
谁能帮我获取它?
谢谢!
【问题讨论】:
标签: c++ operating-system ace
经过几个小时的谷歌搜索,我仍然无法理解如何从 ACE_OS::execlp 命令获取结果。在这里,我需要获取的不是状态本身,而是输出结果。例如,如果我调用一些 bash 脚本并生成它的 stdout/stderr。
谁能帮我获取它?
谢谢!
【问题讨论】:
标签: c++ operating-system ace
恐怕这个功能好像没有实现:根据github(https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ace/OS_NS_unistd.cpp)
和代码:
int
ACE_OS::execlp (const char * /* file */, const char * /* arg0 */, ...)
{
ACE_OS_TRACE ("ACE_OS::execlp");
ACE_NOTSUP_RETURN (-1);
// Need to write this code.
// ACE_OSCALL_RETURN (::execvp (file, argv), int, -1);
}
或者,您可以使用<cstdlib>(如果您的编译器链支持)和如下代码:
#include <cstdlib>
#include <fstream>
#include <iostream>
int main()
{
std::system("ls -l >test.txt"); // execute the UNIX command "ls -l >test.txt"
std::cout << std::ifstream("test.txt").rdbuf();
}
【讨论】: