Saída estranha em C fork fork
Eu tenho o seguinte código C.
#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");
}
}
Compilei o seguinte da seguinte maneira:gcc testFork.c
e executou o código digitando./a.out
.
A saída que obtive foi:
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.
Porque évmw_ubuntu@vmwubuntu:~/Desktop/Test C$
aparecendo no meio do nada?
Estou simplesmente esperando esta saída:
vmw_ubuntu@vmwubuntu:~/Desktop/Test C$ ./a.out
1
This is parent process.1
2
This is child process.