这好似跟缓冲区有关吧,求科普
#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写到输出缓冲区的内容输出。