IO重定向:cout在main中不工作

IO redirect: cout not working in main

本文关键字:工作 main 重定向 cout IO      更新时间:2023-10-16

我有一个函数,其中标准输出被重定向到管道。

我从main调用函数,在调用函数之前,"cout"工作正常。函数后,cout<<不输出任何内容,也不输出write(1,",…)。但是cerr仍然可以输出到控制台。

我认为是函数中的IO重定向使cout在main中不起作用。

无论如何,我可以在main中使用cout,在函数之后,输出到屏幕上?cout和cerr的区别是什么?

谢谢!

我从另一个问题中找到了答案。下面是解决方案:

int o = dup(fileno(stdout));
//call the function that does the IO redirect thing
dup2(o,fileno(stdout));
close(o);

来自Michael Krelin的回答

谢谢大家的帮助!