C++微内核cout问题

标签 c++ debugging cout borland-c++ microkernel

好的,我正在完成我的操作系统作业。我需要编写一个微内核,它能够用线程、信号量、事件等做一些基本的事情。 BCC 3.1 是在模仿我的系统环境。经典调试确实没有用。我正在以 cout 风格进行调试。 问题是 cout 的奇怪行为。它以 block 或其他形式写出。如果我这样做,比如 40 次,它会写出所有内容。如果我做了其中的 39 个,它就不会写任何一个。另一方面,如果我执行 40 到 79 次 cout,它仍然只写入前 40 次,但如果我执行其中的 80 次,它们都没有问题,等等。数字不准确,我不确定真正的数字是多少。但我也注意到,改变 cout-ed 的字符串长度会产生同样的效果。只是我不知道有多少个字符等于一个 cout 调用。 可应要求提供更多信息。感谢转发。

最佳答案

不管事实如何,听起来都像缓冲std::cout不应该缓冲输出。在任何情况下你都可以尝试冲洗 cout通过

std::cout.flush();

std::cout << std::flush;

std::cout << std::endl;

甚至通过禁用缓冲:

std::cout.rdbuf()->pubsetbuf(0, 0);

关于C++微内核cout问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845239/

相关文章:

c++ - 在 C++ 中使用指针总是不好的吗?

c++ - 错误 : lvalue required as unary & operand

php - 有没有办法用 xdebug 只记录比 X 慢的执行?

.net - 自上一步以来进程或线程已更改 (Visual Studio)

c++ - 错误 "undefined reference to ' std::cout'"

c++ - boost 库的哪一部分使 cout 能够打印 wstring 以及如何打印?

c++ - 如何检查对象中是否存在信号?

c++ - 在 cantata++ 测试项目中引用 yvals.h 的构建错误

c++ - 如何调试apache?我在哪里可以找到核心转储

C++ 将区域设置全局重置为 "C"?