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/