不同的操作系统采用不同的实现方式来创建进程。例如在Unix系统中,每个进程都有唯一的进程识别号(PID)。父进程利用fork系统调用来创建新进程。
fork的返回值小于零,说明进程没有创建成功;
fork的返回值等于零,表示子进程正在执行;
fork的返回值大于零,表示父进程还在执行。
子进程被创建后,一般使用execlp系统调用——用一个程序取代原来内存空间中的内容,然后开始执行。这样两个进程就各行其道了。
如果父进程无事可做,就执行wait系统调用,让自己插入睡眠队列,等待子进程的终结。
下面程序展示了在Unix/Linux系统中,父进程创建子进程以及各自分开活动的情况。
上述代码中,父进程创建了子进程,子进程会用打开目录/bin下面的ls命令