#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;
}
Đầu ra của chương trình (nơi read
đầu tiên và write
đầu tiên được gõ bởi người sử dụng và lặp lại bởi các thiết bị đầu cuối) là:write() để stdout và printf đầu ra không xen kẽ?
read
read
write
write
n: 5:n: 6:
Kết quả của printf đưa ra sau khi nhấn tổ hợp phím Ctrl + D tại đầu vào tiêu chuẩn và không cùng với các lần đọc tiếp theo. Lý do tại sao điều này xảy ra?
Bạn cũng có thể thay đổi chế độ đệm bằng setvbuf() trước khi thực hiện bất kỳ IO nào. – AProgrammer
"' printf() 'là [đệm] (http://en.wikipedia.org/wiki/Data_buffer)" nghĩa là gì? – ma11hew28
http://stackoverflow.com/a/17552608/242933 – ma11hew28