1

パイプを使用してシステム コールの出力をキャプチャしています。私が実行しているコマンドは次のとおりです:-

ps -ef | grep "/home/code/service" | grep 14011 | awk '{print $NF}'

コマンドプロンプトで上記のコマンドを実行すると、197などの整数値が1つ表示されます。

pipe を使用して同じコマンドを実行すると、次のようになります:-

$NF}'
$NF}'
197

上記の出力順序はランダムな順序であるため、次のようになる可能性があります:-

$NF}'
197
$NF}'


以下のリンクに記載されている同様のコード(waqasによる)を使用しています:-

コマンドを実行し、POSIX を使用して C++ 内でコマンドの出力を取得する方法は?

次の方法を使用してパイプにコマンドを渡しています:-

std::stringstream sstr ;

sstr<<"ps -ef | ";
sstr<<"grep \"/home/code/service/\" | grep ";
sstr<<ppid;
sstr<<" | awk \'{print $NF}\'";

FILE* pipe = popen((sstr.str()).c_str(), "r");
4

0 に答える 0