pcntl_fork()函数说明

pcntl_fork()函数复制了当前进程的PCB,
并向父进程返回了派生子进程的pid,
父子进程并行,打印语句的先后完全看系统的调度算法,
打印的内容控制则靠pid变量来控制。
因为我们知道pcntl_fork()向父进程返回了派生子进程的pid,是个正整数;
而派生子进程的pid变量并没有被改变,这一区别使得我们看到了他们的不同输出。

1. 派生子进程的进程,即父进程,其pid不变;
2. 对子进程来说,fork()函数返回给它0, 但它自身的pid绝对不会是0;
之所以fork()函数返回0给它,是因为它随时可以调用getpid()来获取自己的pid;
3. fork之后父、子进程除非采用了同步手段,否则不能确定谁先运行,也不能确定谁先结束。
认为子进程结束后父进程才从fork返回的,这是不对的,fork不是这样的,vfork才这样。

posted on 2017-09-27 09:54  dongruiha  阅读(333)  评论(0编辑  收藏  举报

导航