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();
}
经过几个小时的谷歌搜索,我仍然无法理解如何从 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();
}