On Fri, 2004-04-30 at 18:55, Radu Naidinescu wrote:
> ----- test.c ------
> #include <stdio.h>
> #include <unistd.h>
> 
> int main() {
> 
>     printf("aaaaaa\n");
> 
>     while(1) {
> 
>       printf("b");
           ^^^^^^^^^^
fprintf(stderr,"b");
>       sleep(1);
> 
>     }
> 
>     return 0;
> }
        Daca faci modificarea de mai sus adica nu tiparesti in stdout ci in
stderr o sa ai surpriza ca va avea comportamentul la care te asteptai.
        Explicatia comportamentului este urmatoarea: stdout este buffered,
stderr nu. Adica programul tau va astepta pana se umple bufferul de la
stdout si va "scuipa" pe ecran sute de b-uri odata ... si tot asa.
        In functie de ce vroiai de fapt sa faci, poti sa golesti bufferul la
fiecare repetare a ciclului, etc. :)

        Spor la programare !!

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui