Linux下C编程中printf不加'\n'不输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Akeron/article/details/80144414

  调试linux下的socket程序时,发现服务器端收到的信息只有在客户端结束后才会显示收到的信息,但是如果在printf中加入换行符,就会立刻输出。原因是因为Unix系统一般有行缓存。而’\n’可视为行刷新标志。
只要把printf(“1”);改成printf(”1\n”);


下面情况下会刷新缓存:
1 强制刷新标准输出缓存fflush(stdout);
2 放到缓冲区的内容中包含/n;
3 缓冲区已满;
4 需要从缓冲区拿东西到时候,如执行scanf;

猜你喜欢

转载自blog.csdn.net/Akeron/article/details/80144414