好的,我正在做我的操作系统作业。我需要写一个微内核,它能够做一些基本的东西与线程,信号量,事件等。BCC 3.1正在模仿我的系统环境。经典的调试真的没有用。我正在用cout风格调试。问题是他古怪的行为。它以块或其他形式写出来。如果是40次,它会把所有内容都写出来。如果我做了39个,它一个也写不出来。另一方面,如果我做了40到79次,它仍然只写前40次,但如果我做了80次,它们都没问题,等等。数字不准确,我不确定具体数字是多少。但我也注意到,改变字符串的长度,被计数的效果是一样的。只是我不知道多少个字符等于一次呼出。可根据要求提供更多信息。
听起来像是在缓冲,而不管std::cout
不应该缓冲输出。在任何情况下,您都可以尝试通过
cout
std::cout.flush();
或
std::cout << std::flush;
或
std::cout << std::endl;
甚至禁用缓冲:
std::cout.rdbuf()->pubsetbuf(0, 0);