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.