IO重定向:cout在main中不工作
IO redirect: cout not working in main
我有一个函数,其中标准输出被重定向到管道。
我从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的回答
谢谢大家的帮助!
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- QSqlquery prepare()和bindvalue()不工作
- 不确定要在我的main中放入什么才能使我的代码正常工作
- C++ assigment std::list:<typename>:itrator 在 main 中工作,但在方法中它不起作用
- Atmel Studio 7:ASF 库提供的 USART 中断处理程序仅在 main() 中遇到无限循环时工作一次?
- WritePrivateProfileString在main中工作,但在函数中不起作用
- 如何让我的构造函数和函数工作,以便我的 main() 能够同时显示字符串和 int 数据
- 函数指针仅在 main 内部工作
- 为什么我的程序在输入main()之前停止工作
- 在 main() 中传递C++命令行参数,但要做同样的工作
- 'main'已停止工作 - C++ [dev++]
- C++ std::cin 无法在 main() 之外工作
- main() 方法在 C 中是如何工作的
- Qt qtcpserver只有在main函数中创建时才工作
- 从指针到法向量的转换在main函数中工作,但在从函数返回时不起作用
- c++ memset()在main函数内外的工作方式不同
- 为什么main()函数之后的类定义不能工作
- 使用静态数据的构造函数在main()之前执行工作
- IO重定向:cout在main中不工作
- 向量::擦除在类方法中不起作用,但在 main 中工作;没有编译器错误,只有意外的结果