之间网

fork函数实现原理(关于fork()函数)

热点聚焦
导读 您好,今日西西来为大家解答以上的问题。fork函数实现原理,关于fork()函数相信很多小伙伴还不知道,现在让我们一起来看看吧!1、fork函数是...

您好,今日西西来为大家解答以上的问题。fork函数实现原理,关于fork()函数相信很多小伙伴还不知道,现在让我们一起来看看吧!

1、fork函数是计算机程序设计中的分叉函数。

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

3、  fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。

4、这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。

5、  函数原型  pid_t fork( void);  (pid_t 是一个宏定义,其实质是int 被定义在#include中)  返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1  函数说明  一个现有进程可以调用fork函数创建一个新进程。

6、由fork创建的新进程被称为子进程(child process)。

7、fork函数被调用一次但返回两次。

8、两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。

9、  子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。

10、注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。

11、  UNIX将复制父进程的地址空间内容给子进程,因此,子进程有了独立的地址空间。

12、在不同的UNIX (Like)系统下,我们无法确定fork之后是子进程先运行还是父进程先运行,这依赖于系统的实现。

13、所以在移植代码的时候我们不应该对此作出任何的假设。

本文就为大家分享到这里,希望小伙伴们会喜欢。

标签: