读书人

请教C++程序如何捕获linux shell的输出

发布时间: 2012-03-04 11:13:34 作者: rapoo

请问C++程序怎么捕获linux shell的输出?
比如我的程序需要捕获df命令的输出,然后得到其中的磁盘剩余空间。请问我应该如何重定向输出,然后捕获信息呢?

[解决办法]
你的程序直接使用stdin,stdou....
[解决办法]
1)你主进程首先创建一个管道读句柄为h0,写句柄为h1;
2)主进程调用dup2将标准输出替换为h1;
3)调用fork或者system创建df进程,该进程继承了主进程的文件描述符;
4)主进程恢复标准输出;
5)主进程读取h0即可获得df进程的输出结果;然后加以分析处理;
6)关闭管道
。。。。。。

读书人网 >C++

热点推荐