在 C++ 中,我usleep
在“主”路径中使用并在out
之前调用该函数。
out();
usleep(4000000);
out
只是在屏幕上打印一些东西。不幸的是,打印仅在 4 秒后出现在屏幕上,尽管out()
函数调用在usleep
命令之前。我用 raspbian 研究覆盆子。怎么可能不是先功能out()
;被调用然后usleep
开始,但反过来呢?
在 C++ 中,为了减少 IO 的时间,我们缓冲了输出。这意味着,写入屏幕/磁盘的调用并不总是写入真实设备。
让我们以这段代码为例:
for (int x = 0; x < 10000; x++)
std::cout << "a";
如果每次都将“a”写入屏幕,则需要很长时间。相反,整个缓冲区每 n 个字符写入一次。
为了将非完整缓冲区写入屏幕,您有几个选项:
像这样使用 std::flush :
std::cout << std::flush;
Std::endl 也使用冲洗:
std::cout << std::endl;