2012-07-03 5 views

Antwort

15

Sie müssen fflushstdout, weil in der Regel stdout Zeile gepuffert ist und Sie keine neue Zeile Zeichen in Ihrem Programm ausgeben.

  fprintf(stdout,"hello-out"); 
      fflush(stdout); 

stderr nicht vollständig standardmäßig gepuffert, so dass Sie fflush es nicht brauchen.

2

Die Standardausgabe ist standardmäßig linienweise gepuffert, was bedeutet, dass der Puffer an jedem Ende der Zeile gelöscht wird ('\n '). stderr ist nicht gepuffert, daher wird jedes Zeichen automatisch gesendet, ohne zu spülen.

Sie können dies bestätigen, indem Sie eine \n am Ende des stdout-Ausgangs platzieren. Auf diese Weise werden beide Zeilen in Intervallen von 1 Sekunde gedruckt.