六,重点:使用系统接口fork创建子进程
fork的功能是创建子进程,如果创建成功给子进程的返回值是0,给父进程的返回值是子进程的PID,如果子进程创建失败,就会返回一个负数
你没有听错,fork有两个返回值...我们竟然发现,if和else if竟然在同时运行!这也验证了fork的确有两个返回值,虽然if 和else if 同时执行了,但是却是在不同的进程中;
6.1为什么需要创建子进程?...;
6.2fork的返回值分析
fork为什么给子进程返回0,其实对于子进程来说只是一个标识作用,他可以使用ps 查看自己的PID和父进程的PID;
fork为什么给父进程返回子进程的PID;因为父进程需要对创建的子进程进行管理...;这就是数据层面的写时拷贝;
6.4为什么fork会有两个返回值?...我们现在分析一下fork函数->
我们知道fork函数是拷贝父进程的代码和数据,创建一个新的task_struct,所以这里就有了先后顺序问题;
是先执行完函数返回值之后才创建好了子进程还是在返回值之前就创还能好了子进程呢