#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;
}
La salida del programa (donde la primera read
y primera write
se introducidas por el usuario y se hizo eco por el terminal) es:write() para la salida stdout y printf no intercalada?
read
read
write
write
n: 5:n: 6:
La salida de printf viene después de pulsar Ctrl + D en el entrada estándar y no junto con las lecturas posteriores. ¿Por qué pasó esto?
También puede cambiar el modo de almacenamiento en búfer con setvbuf() antes de hacer cualquier IO. – AProgrammer
¿Qué significa "' printf() 'es [buffer] (http://en.wikipedia.org/wiki/Data_buffer)"? – ma11hew28
http://stackoverflow.com/a/17552608/242933 – ma11hew28