在c中捕获系统调用输出时获得额外的字符

时间:2013-10-07 06:19:21

标签: c++ pipe popen

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

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

0 个答案:

没有答案