#include <stdio.h>
#define MAXLEN 256
int main() {
int n;
char buf[MAXLEN];
while((n = read(0,buf,sizeof(buf))) != 0){
printf("n: %d:",n);
write(1,buf,n);
}
return 1;
}
程序(其中第一read
和第一write
由用户键入和呼应由终端)的输出是:写()到标准输出和printf输出不交错?
read
read
write
write
n: 5:n: 6:
的printf的输出来按下Ctrl + d在后标准输入,而不是随后的读取。为什么会发生?
您也可以在执行任何IO之前使用setvbuf()更改缓冲模式。 – AProgrammer 2009-08-07 06:51:08
“'printf()'是[buffered](http://en.wikipedia.org/wiki/Data_buffer)”是什么意思? – ma11hew28 2014-04-26 17:12:09
http://stackoverflow.com/a/17552608/242933 – ma11hew28 2014-04-26 17:50:10