- 作用
创建一个新进程。
- 说明
当一个进程成功调用fork函数之后,将会创建一个新进程,该进程称为主调函数的子进程。该子进程拥有自己的进程空间,并与父进程共享代码段,但拥有自己的堆栈段和数据段空间,且从父进程中复制堆栈段和数据段的信息到自己的对应空间中。尤其值得注意的是,子进程会复制父进程的执行上下文场景到自己的进程空间中。所以,fork函数返回之后,子进程和父进程都将执行fork函数后的语句。
- 返回值
如果失败,返回-1;反之,在主进程中,fork函数返回新创建进程的id,即子进程id;在子进程中,fork函数返回0,但是可以通过getppid()来获得父进程的id。
- 示例代码
其他:
getppid()
子进程中获取父进程的id,但是经常会获取到结果是1,这是因为子进程执行的时候,父进程已经结束了,如果需要获得预期结果,必须在主进程代码中使用wait函数,以等待子进程的状态发生变化才继续执行。