关于父子进程执行顺序的有关问题

关于父子进程执行顺序的问题刚刚学Linux下C程序开发,看的是清华大学出版社出版的《Linxu C 程序基础与实例

关于父子进程执行顺序的问题
刚刚学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 .




[解决办法]
fork后,是不确定先执行哪个的,哪个都有可能先执行。
[解决办法]
fork就是这样的,父子进程的执行顺序不确定,谁先执行都有可能。
如果需要确定的执行顺序,就得想别的办法。
比如用vfork,保证子进程先运行。
[解决办法]
探讨
引用:

fork后,是不确定先执行哪个的,哪个都有可能先执行。

那想确定执行顺序怎么办?用只能用vfork吗?

[解决办法]
父子进程的执行顺序是不确定的,不要依赖这种顺序
如果实在需要顺序,可以考虑某种进程间通信机制,如管道、信号灯..