关于父子进程执行顺序的问题 刚刚学Linux下C程序开发,看的是清华大学出版社出版的《Linxu C 程序基础与实例讲解》,我现在对父子进程的执行顺序感到很困惑。书上的例子是先子进程后父进程。但在我的电脑上(Ubuntu 10.10)却是先父进程后子进程。 网上说,这是内核进程调度问题,请问一下这是怎么搞得,这样的程序是无法跨平台使用的吧? 附书上的例子:
C/C++ code
//fork()
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main()
{
pid_t child_pid;
child_pid=fork();
switch(child_pid)
{
case -1:
printf("Create process failed!\n");
break;
case 0:
printf("Child process with ID : %d .\n",(int)getpid());
break;
default:
printf("Parent process with ID : %d ,Child process ID : %d .\n",(int)getpid(),(int)child_pid);
break;
}
return 0;
}
运行结果: Parent process with ID : 30394 ,Child process ID : 30395 . Child process with ID : 30395 .