好的,我正在完成我的操作系统作业。我需要编写一个微内核,它能够用线程、信号量、事件等做一些基本的事情。 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/