您好,今日西西来为大家解答以上的问题。fork函数实现原理,关于fork()函数相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、fork函数是计算机程序设计中的分叉函数。
2、返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
3、 fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。
4、这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。
5、 函数原型 pid_t fork( void); (pid_t 是一个宏定义,其实质是int 被定义在#include
6、由fork创建的新进程被称为子进程(child process)。
7、fork函数被调用一次但返回两次。
8、两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。
9、 子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。
10、注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。
11、 UNIX将复制父进程的地址空间内容给子进程,因此,子进程有了独立的地址空间。
12、在不同的UNIX (Like)系统下,我们无法确定fork之后是子进程先运行还是父进程先运行,这依赖于系统的实现。
13、所以在移植代码的时候我们不应该对此作出任何的假设。
本文就为大家分享到这里,希望小伙伴们会喜欢。