1

我正在使用管道捕获系统调用输出。我正在运行的命令如下:-

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");
4

0 回答 0