Warum wird das printf () vor dem fork () auch nach dem fork () ausgeführt? [Duplikat]

8

Wenn ein fork() aufgerufen wird, sollte das Programm von der ersten Anweisung nach der Verzweigung fortgesetzt werden, warum wird dann das Wort START zweimal gedruckt?

%Vor%

Zum Beispiel ist eine mögliche Ausgabe:

  

START ... 605: Ich habe 606

     

START ... 606: Ich habe 0

    
Gerardo Zinno 19.04.2016, 13:58
quelle

1 Antwort

8

Da Sie den Ausgabepuffer nicht gelöscht haben, ist der Text sowohl im Ausgangspuffer des Eltern- als auch des Kind-Ausgabepuffers nach dem fork() vorhanden.

Fügen Sie fflush(stdout); nach dem ersten printf() hinzu und sehen Sie den Unterschied.

    
trojanfoe 19.04.2016, 14:00
quelle

Tags und Links