首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这似乎跟缓冲区有关吧,求科普

2013-01-17 
这好似跟缓冲区有关吧,求科普#include stdio.h#include stdlib.hint main(){putchar(a)write(1,b

这好似跟缓冲区有关吧,求科普
#include <stdio.h>

#include <stdlib.h>


int main()

{
putchar('a');

write(1,"b",1);


putchar('a');

write(1,"b",1);


putchar('a');

write(1,"b",1);


return 0;
}

打印出来的是bbbaaa,但是在putchar和write加入了fflush,就会打印ababab,那位高人知道啊,求解,谢谢了
[解决办法]
putchar有缓冲,调用putchar的时候不会立即输出。fflush之后强制将缓冲的数据输出。
所以要么全用有缓冲的,要么全用无缓冲的。
[解决办法]
putchar是带缓冲的,write是不带缓冲的系统调用。可参考《APUE》第三章

fflush会把putchar写到输出缓冲区的内容输出。

热点排行