我在用QT做一个程序,需要将当前进程的标准输出重定向到一块内存中。目前我知道的有两种方法,一是用freopen,将STDOUT重定向至指定文件,但这个程序要求不能使用外部文件;第二种方法就是重新设定cout的streambuf,此法对于cout的输出适用,但对于调用printf的输出无效。
我查了一下QT文档,注意到QProcess的readAllStandardOutput成员函数,它可以读取QProcess的标准输出。问题又来了,如何获得当前进程的QProcess对象呢?能不能像调用QCoreApplication::instance()获得当前程序对象指针一样,获得当前进程QProcess对象的指针呢?
前面说的有点乱,我主要想请教两点。一,如何重定向当前进程的标准输出;二,如何获得代表当前进程的QProcess对象的指针?谢谢各位