2016-10-26 8 views
0

数時間のグーグルで私はACE_OS :: execlpコマンドから結果を得る方法をまだ理解していません。ここでは、ステータス自体ではなく出力結果を取得する必要があります。たとえば、私がbashスクリプトをいくつか呼び出すと、stdout/stderrが生成されます。ACE_OS:execlp get result - stdout

誰でも入手方法を教えていただけますか?

ありがとうございました!

答えて

0

私はこの機能が実装されていないようだが怖い: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>を使用することができますし、 http://en.cppreference.com/w/cpp/utility/program/system

に見られるように

#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(); 
} 

:のようなコード3210