我必须在我的C ++代码中运行系统命令:int val = system( "pacmd list-sink-inputs | grep -c 'state: RUNNING'" );该命令返回所需的结果val,但也val返回调用的结果(我似乎无法弄清楚哪一个)也被写入stdout终端并在终端上打印。有没有一种方法可以将呼叫重定向到“不写入”stdout或“以外”的任何位置val?
2 回答
DIEA
TA贡献1820条经验 获得超2个赞
Bash管道会有所帮助。
如果使用|&,则命令的标准错误通过管道连接到command2的标准输入;否则,命令的标准错误通过管道连接到command2的标准输入。它是2>&1 |的简写。
因此,您可以使用以下命令
int val = system( "pacmd list-sink-inputs &| grep -c 'state: RUNNING'" );
或者
int val = system( "pacmd list-sink-inputs 2>&1| grep -c 'state: RUNNING'" );
杨魅力
TA贡献1811条经验 获得超6个赞
将最后一个命令的输出重定向到/dev/null
该技巧。
最终命令如下所示:
int val = system( "pacmd list-sink-inputs | grep -c 'state: RUNNING' > /dev/null" );
这是一个很好的帖子,解释了/dev/null
。
- 2 回答
- 0 关注
- 589 浏览
添加回答
举报
0/150
提交
取消