现在的位置: 首页 > web前端 > 正文

fork函数是什么

2020年07月20日 web前端 ⁄ 共 963字 ⁄ 字号 评论关闭

  复刻(英语:fork,又译作派生、分支)是UNIX或类UNIX中的分叉函数,fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。


  fork函数是什么


  从一个软件包拷贝了一份源代码然后在其上进行独立的开发,创建不同的软件。这个术语不只意味着版本控制上的分支,同时也意味着开发者社区的分割,是一种形式的分裂。


  自由及开放源代码软件可以从原有开发团队复刻而不需要事先的许可,这也不会违反任何著作权法律。授权的专有软件(例如Unix)的复刻也时有发生。


  fork系统调用用于创建一个新进程,称为子进程,它与进程(称为系统调用fork的进程)同时运行,此进程称为父进程。创建新的子进程后,两个进程将执行fork()系统调用之后的下一条指令。子进程使用相同的pc(程序计数器),相同的CPU寄存器,在父进程中使用的相同打开文件。


  它不需要参数并返回一个整数值。下面是fork()返回的不同值。


  负值:创建子进程失败。


  零:返回到新创建的子进程。


  正值:返回父进程或调用者。该值包含新创建的子进程的进程ID[1]。


  头文件


  1


  2


  #include<unistd.h>/*#包含<unistd.h>*/


  #include<sys/types.h>/*#包含<sys/types.h>*/


  fork函数原型


  pid_tfork(void);


  (pid_t是一个宏定义,其实质是int被定义在#include<sys/types.h>中)


  返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1


  函数说明编辑


  一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(childprocess)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。


  子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。


  总之,fork函数给大家简单的介绍了一些,希望大家多看看。


  

抱歉!评论已关闭.