#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;
}
L'output del programma (dove il primo read
e primo write
è tipizzato dall'utente e eco dal terminale) è:write() su stdout e output printf non interlacciato?
read
read
write
write
n: 5:n: 6:
L'output di printf arriva dopo aver premuto Ctrl + D alla input standard e non insieme alle letture successive. Perché succede?
È inoltre possibile modificare la modalità di buffering con setvbuf() prima di eseguire qualsiasi IO. – AProgrammer
Che cosa significa "printf()' è [bufferizzato] (http://en.wikipedia.org/wiki/Data_buffer) "significa? – ma11hew28
http://stackoverflow.com/a/17552608/242933 – ma11hew28