• 6907阅读
  • 1回复

如何重定向当前进程的标准输出 [复制链接]

上一主题 下一主题
离线venustom
 
只看楼主 倒序阅读 楼主  发表于: 2009-11-28
        我在用QT做一个程序,需要将当前进程的标准输出重定向到一块内存中。目前我知道的有两种方法,一是用freopen,将STDOUT重定向至指定文件,但这个程序要求不能使用外部文件;第二种方法就是重新设定cout的streambuf,此法对于cout的输出适用,但对于调用printf的输出无效。
    我查了一下QT文档,注意到QProcess的readAllStandardOutput成员函数,它可以读取QProcess的标准输出。问题又来了,如何获得当前进程的QProcess对象呢?能不能像调用QCoreApplication::instance()获得当前程序对象指针一样,获得当前进程QProcess对象的指针呢?
    前面说的有点乱,我主要想请教两点。一,如何重定向当前进程的标准输出;二,如何获得代表当前进程的QProcess对象的指针?谢谢各位
离线venustom
只看该作者 1楼 发表于: 2009-12-15
感谢各位关注,重定向的问题暂时用管道解决了,只是这样的话要加入很多平台相关的代码,移植起来很不方便。第二个问题还是没有眉目,持续关注中
快速回复
限100 字节
 
上一个 下一个