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