文学百科科普知识

fork是什么意思 什么是fork

2017-02-28 本文已影响291人  温暖慕城

  你知道fork是什么意思吗?随着网络的快速发展,促使了许多新名词的出现,如果不了解岂不是太落伍了,下面我们一起来看看fork是什么意思吧。

  fork是什么意思

  叉子\分岔\岔口\复刻,西方人吃饭用的东西,经常用作刀和叉。

  计算机程序设计中的分叉函数。返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1

  扩展阅读:为什么fork会返回两次?

  由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因此fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。过程如下图。

  fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:

  在父进程中,fork返回新创建子进程的进程ID;

  在子进程中,fork返回0;

  如果出现错误,fork返回一个负值。

  在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。我们可以通过fork返回的值来判断当前进程是子进程还是父进程。

  引用一位网友的话来解释fork函数返回的值为什么在父子进程中不同。“其实就相当于链表,进程形成了链表,父进程的fork函数返回的值指向子进程的进程id, 因为子进程没有子进程,所以其fork函数返回的值为0.

  调用fork之后,数据、堆栈有两份,代码仍然为一份但是这个代码段成为两个进程的共享代码段都从fork函数中返回,箭头表示各自的执行处。当父子进程有一个想要修改数据或者堆栈时,两个进程真正分裂。

下一篇上一篇

猜你喜欢

热点阅读