C ++微内核cout问题

时间:2011-07-27 13:36:22

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

好的,我正在处理我的操作系统任务。我需要编写一个微内核,它可以用线程,信号量,事件等做一些基本的东西。 BCC 3.1正在模仿我的系统环境。经典调试真的没用。我在cout风格调试。 问题是cout的奇怪行为。它以块或其他东西写出来。如果我这样做,就像40个小丑一样,它会把一切都写出来。如果我做了39个,它就不会写任何一个。另一方面,如果我做40到79个小丑,它仍然只写前40,但如果我做了80个,它们都没问题等等。数字不准确,我不确定这个数字到底是多少。但我也注意到,改变cout-ed的字符串长度会产生相同的影响。只有我不知道有多少个字符等于一个cout电话。 可根据要求提供其他信息。谢谢你。

1 个答案:

答案 0 :(得分:1)

听起来像缓冲,无论事实std::cout不应该缓冲输出。无论如何,您可以尝试通过

刷新cout

std::cout.flush();

std::cout << std::flush;

std::cout << std::endl;

甚至禁用缓冲:

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