我正在使用管道捕获系统调用输出。 我正在运行的命令如下: -
ps -ef | grep "/home/code/service" | grep 14011 | awk '{print $NF}'
当我在命令提示符上执行上面的命令时,它给我一个整数值,说 197 。
当我使用管道执行相同的命令时,我得到以下内容: -
$NF}'
$NF}'
197
以上输出顺序是随机顺序,因此可能是以下内容: -
$NF}'
197
$NF}'
我正在使用下面链接中提到的类似代码(通过waqas): -
How to execute a command and get output of command within C++ using POSIX?
我使用以下方式将命令传递给管道: -
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");