#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