【问题标题】:ACE_OS:execlp get result - stdoutACE_OS:execlp 得到结果 - 标准输出
【发布时间】:2016-10-26 21:46:54
【问题描述】:

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

谁能帮我获取它?

谢谢!

【问题讨论】:

    标签: c++ operating-system ace


    【解决方案1】:

    恐怕这个功能好像没有实现:根据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所见

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-09
      • 2021-05-07
      • 1970-01-01
      • 2013-05-01
      • 2018-08-21
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      相关资源
      最近更新 更多