将stdout重定向到缓冲区,而不是使用>

Yak*_*kov 1 c++ printf buffer stdout

我编写了printf的实现 - myPrintf,它打印到stdout.我想验证它是否正常工作.为了检查打印输出的相关性,我想将它与我希望得到的char进行比较.如何编写代码以将stdout重定向到缓冲区,而不是使用>.

我只能使用printf!

Red*_*edX 7

您可以通过将couts缓冲区设置rdbuf()为已打开的文件来重定向缓冲区.

奇怪,C++和只有printf,但无论如何.

也可以在C中重定向stdout.

这是一种方法:https://rydow.wordpress.com/2007/10/26/c-code-to-redirect-stdout/

它涉及dupdup2.

还有这个选项(从C中重新路由stdin和stdout)使用freopen.