Seltsame Ausgabe in C Fork Call

Ich habe den folgenden C-Code.

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>


int main ()
{

    int i=1;

    pid_t child_pid = fork();

    if (child_pid == 0) 
    {
        printf ("%d\n", i++);
        printf ("%d\n", i++);
        printf ("This is child process.");
        return 0;


    }
    else if (child_pid > 0) {
        printf ("%d\n", i++);
        printf ("This is parent process.");
    }

    else {
    printf("Fork failed");
    }

}

Ich habe folgendes zusammengestellt:gcc testFork.c und lief den Code durch Eingabe von./a.out.

Die Ausgabe, die ich bekam, war:

vmw_ubuntu@vmwubuntu:~/Desktop/Test C$ ./a.out
1
This is parent process.vmw_ubuntu@vmwubuntu:~/Desktop/Test C$ 1
2
This is child process.

Warum istvmw_ubuntu@vmwubuntu:~/Desktop/Test C$ mitten im nirgendwo erscheinen?

Ich erwarte einfach diese Ausgabe:

vmw_ubuntu@vmwubuntu:~/Desktop/Test C$ ./a.out
1
This is parent process.1
2
This is child process.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage