OT: Programacion C - Error o normal ?

"Juan Carlos Muñoz" jcmunoz en dcc.uchile.cl
Lun Nov 22 21:34:50 CLST 2004


Hola, no hay error en lo absoluto, el FD de stdout usa un buffer al 
"enter" o por linea para hacer el flush, eso significa que el vacia el 
contenido o bien cuando aparece un "enter" (\n) o cuando se acaba el 
contenido, eso es lo tipico que pasa cuando se hace debuging y uno no le 
pone enter a los mensajes de debug... (tipico de PERL)

para eso se setean los FD para que actuen de manera correcta...

Para mayor info revisa setbuf(3)

Atte. JCMI




Felipe Cristian Barriga Richards (Lista) wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hola lista, como vi un OT sobre C, decidi aprovechar el panico y
> consultarles acerca de una duda que tenia hace tiempo. (Todo bajo
> gcc-Linux ;) ).
>     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.
>
> Saludos y gracias por leer este extenso OT.
> (Flames y otros enviar a : trash en felipebarriga.cl).
>
> - --
> Felipe Cristián Barriga Richards
> Santiago, Chile
> http://www.felipebarriga.cl
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.2 (MingW32)
>
> iD8DBQFBnqCntYhkv1QlTGcRAiBdAKCCZNmddgcetX2W6nzYF6Ot8pflsACffLOD
> Y1gYPKjA7GHD865OzOfbFDc=
> =Hu1b
> -----END PGP SIGNATURE-----
>

------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : jcmunoz.vcf
Tipo       : text/x-vcard
Tamaño     : 314 bytes
Descripción: no disponible
Url        : https://listas.inf.utfsm.cl/pipermail/linux/attachments/20041122/bdd8e7d1/jcmunoz.vcf


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