fork() - Unix、Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

fork() - Unix、Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

fork - 创建子进程

语法

#include <sys/types.h>
#include <unistd.h> 

pid_t fork(void);

描述

fork() 创建一个子进程,该子进程仅在其 PID 和 PPID 以及资源利用率设置为 0 方面与父进程不同。文件锁和挂起的信号不会被继承。

在 Linux 下,fork() 使用写时复制页面实现,因此它唯一产生的开销是复制父进程页表所需的时间和内存,以及为子进程创建唯一的任务结构。

返回值

成功时,子进程的 PID 将返回到父进程的执行线程中,并且在子进程的执行线程中返回 0。失败时,将在父进程的上下文中返回 -1,不会创建子进程,并且errno将被适当地设置。

错误

错误代码描述
EAGAIN fork() 无法分配足够的内存来复制父进程的页表并为子进程分配任务结构。
EAGAIN 无法创建新进程,因为遇到了调用者的RLIMIT_NPROC资源限制。要超过此限制,进程必须具有CAP_SYS_ADMINCAP_SYS_RESOURCE功能。
ENOMEM fork() 由于内存紧张而无法分配必要的内核结构。

符合标准

SVr4、4.3BSD、POSIX.1-2001。

参见



previous next Printer Friendly

广告


  

广告



广告