C sleep命令的执行方式与我预期的不同
为什么在3秒钟后输出“Whats up Stack…”,而不是先“Whats up”,然后在3秒钟后输出其余的内容?这是因为标准输出通常是行缓冲的。因此,您的C库缓冲输出。您可以使用C sleep命令的执行方式与我预期的不同,c,C,为什么在3秒钟后输出“Whats up Stack…”,而不是先“Whats up”,然后在3秒钟后输出其余的内容?这是因为标准输出通常是行缓冲的。因此,您的C库缓冲输出。您可以使用printf()中的\n或调用 或 您还可以通过以下方式关闭缓冲: 这是因为stdout通常是行缓冲的。因此,您的C库缓冲输出。您可以使用printf()中的\n或调用 或 您还可以通过以下方式关闭缓冲: 作为一个简短的提示,这与OPs问题没有直接关系,但仍然相关。如果您在linux上使用换行符刷新缓冲区只在终端上起
printf()
中的\n
或调用
或
您还可以通过以下方式关闭缓冲:
这是因为
stdout
通常是行缓冲的。因此,您的C库缓冲输出。您可以使用printf()
中的\n
或调用
或
您还可以通过以下方式关闭缓冲:
作为一个简短的提示,这与OPs问题没有直接关系,但仍然相关。如果您在linux上使用换行符刷新缓冲区只在终端上起作用,而不在文件重定向上起作用,那么请注意,这与OPs问题没有直接关系,但仍然相关。如果您在linux上使用换行符刷新缓冲区,则只会在终端上工作,而不会在文件重定向上工作
int main()
{
printf("Whats up");
sleep(3);
printf("StackOverflow? All having a nice day? ");
}
printf("Whats up\n");
fflush(stdout); // call after the printf
setbuf(stdout, 0);