OT: Programacion C - Error o normal ?

German Poo Caaman~o gpoo en ubiobio.cl
Vie Nov 19 23:36:29 CLST 2004


El vie, 19-11-2004 a las 22:40 -0300, Felipe Cristian Barriga Richards
(Lista) escribió:
> [...]
> 	Resulta que hice un programita a modo de ilustrar el error (o lo que yo
> considero error). Es medio complicado mostarlo sin el ejemplo.
> 
> - ---- Inicio ejemplo.c ----
> 
> #include <stdio.h>
> #include <unistd.h>
> 
> int main () {
> ~   int i;
> 
> ~   printf ("---- Inicio ----\n");
> 
> ~   printf ("-- Prueba con salto de linea --\n");
> ~   for (i=0; i<101; i++) {
> ~      printf ("%d\n", i);
> ~      usleep (10000);
> ~   }
> 
> ~   printf ("\n-- Prueba sin salto de linea --\n");
> ~   for (i=0; i<101; i++) {
> ~      printf ("%d ", i);
> ~      usleep (10000);
> ~   }
> 
> ~   printf ("\n---- Fin ----\n");
> ~   return (0);
> }
> 
> - ---- Fin ejemplo.c ----
> 
> Como puede ver al ejecutar este codigo, en el primer 'for', se imprime
> el valor de 'i' en cada ejecucion del ciclo. En el segundo 'for' se
> ejecuta y una vez que termine completamente el 'for' imprime todos los
> valores, como si los guardase en algun buffer.
> ¿ Se puede forzar que se imprima todo lo contenido en ese 'buffer' ?
> (Probe con fprintf (stdout, "%d ", i) y paso exactamente lo mismo.

Si quieres forzar la escritura, usa fflush (stdout) luego del printf
que no contiene '\n'.

-- 
Germán Poó Caamaño
mailto:gpoo en ubiobio.cl



Más información sobre la lista de distribución Linux