Wenn nach einem fork()
aufgerufen wird, sollte das Programm von der ersten Anweisung nach der Gabel fortgesetzt werden, warum wird dann das Wort START zweimal gedruckt?Warum wird das printf() vor dem fork() auch nach dem fork() ausgeführt?
#include<stdio.h>
#include<unistd.h>
int main(){
int pid;
printf("START...");
pid = fork();
printf("%d: I've got %d\n", getpid(), pid);
return 0;
}
Zum Beispiel eine mögliche Ausgabe lautet:
START ... 605: Ich habe 606
START ... 606: Ich habe 0
Sie können auch eine neue Zeile ('\ n') am Ende der Zeichenfolge hinzufügen, und der Puffer sollte geleert werden. – ciamej
@ciamej Ja, aber das wird (etwas) andere Ausgabe geben. – trojanfoe
@SergeyA Ich wusste nicht, dass es ein Betrogener war. Warum haben Sie nicht auch die Frage von dasblinkenlight gestellt? – trojanfoe