我有以下的C代碼。奇怪的輸出在C fork調用
#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");
}
}
我編譯如下如下:gcc testFork.c
並通過輸入./a.out
運行的代碼。
我得到的輸出是:
[email protected]:~/Desktop/Test C$ ./a.out
1
This is parent [email protected]:~/Desktop/Test C$ 1
2
This is child process.
爲什麼[email protected]:~/Desktop/Test C$
出現在中間的地方?
我只是希望這樣的輸出:
[email protected]:~/Desktop/Test C$ ./a.out
1
This is parent process.1
2
This is child process.
一旦父進程結束,shell將恢復;它死的第一件事是打印命令提示符。但是,這個孩子仍然在等待着開始。 – rici
這是你的提示。 –