linux中c代码有关问题
【求助】linux中c代码问题
#include <stdio.h>
int main()
{
printf("hello world");
while(1);
return 0;
}
这些C代码为什么不能输出。
书上说是因为航缓冲问题,但是我还是不是很明白。
------解决方案--------------------
会先放到输出缓冲,所以要想确保及时输出的话,可以这样:
1、加上换行符printf("hello world\n");
2、加上fflush(stdout);强制刷新。
------解决方案--------------------
缓冲就是输出的内容先放到内存, 遇到换行或它认为该输出了, 才把它显示到屏幕上.
------解决方案--------------------
ls正解,printf是将数据放在缓冲区中,当达到一定的要求,才把缓冲区输出到显示器上了。
------解决方案--------------------
行缓冲导致的:
1.遇到回车(\n)为一行,马上输出;
2.用fflush(stdout)刷新换冲区,就能输出;
若没有上面两个,一直放到缓冲区里,等刷新io时(例如:return 0),缓冲区内容就被输出了;
#include <stdio.h>
int main()
{
printf("hello world");
while(1);
return 0;
}
这些C代码为什么不能输出。
书上说是因为航缓冲问题,但是我还是不是很明白。
C
Linux
printf
------解决方案--------------------
会先放到输出缓冲,所以要想确保及时输出的话,可以这样:
1、加上换行符printf("hello world\n");
2、加上fflush(stdout);强制刷新。
------解决方案--------------------
缓冲就是输出的内容先放到内存, 遇到换行或它认为该输出了, 才把它显示到屏幕上.
------解决方案--------------------
ls正解,printf是将数据放在缓冲区中,当达到一定的要求,才把缓冲区输出到显示器上了。
------解决方案--------------------
行缓冲导致的:
1.遇到回车(\n)为一行,马上输出;
2.用fflush(stdout)刷新换冲区,就能输出;
若没有上面两个,一直放到缓冲区里,等刷新io时(例如:return 0),缓冲区内容就被输出了;