Salida extraña en C fork fork call
Tengo el siguiente 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");
}
}
Compilé lo siguiente de la siguiente manera:gcc testFork.c
y ejecutó el código escribiendo./a.out
.
El resultado que obtuve fue:
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.
Por que esvmw_ubuntu@vmwubuntu:~/Desktop/Test C$
apareciendo en el medio de la nada?
Simplemente estoy esperando esta salida:
vmw_ubuntu@vmwubuntu:~/Desktop/Test C$ ./a.out
1
This is parent process.1
2
This is child process.