ACE_OS:execlp 获取结果 - 标准输出

ACE_OS:execlp get result - stdout

经过几个小时的谷歌搜索,我仍然无法理解如何从 ACE_OS::execlp 命令中获取结果。这里我需要获取的不是状态本身,而是输出结果。例如,如果我调用一些 bash 脚本,它会生成 stdout/stderr。

谁能帮我弄到手?

谢谢!

恐怕这个功能似乎没有实现:根据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();
}

http://en.cppreference.com/w/cpp/utility/program/system