我正在使用管道捕获系统调用输出。我正在运行的命令如下:-
ps -ef | grep "/home/code/service" | grep 14011 | awk '{print $NF}'
当我在命令提示符下执行上述命令时,它会给我一个整数值,比如197。
当我使用管道执行相同的命令时,我得到以下信息:-
$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");