fork()函数真正被实现的文件是哪个?

2021-11-04 科技 216阅读
fork实际上是操作系统提供的系统调用(syscall),它是由操作系统,比如你在linux系统上,就要看内核源码。

至于程序中我们使用的fork接口本身,是由标准C库,libc实现的,它其实很简单,直接调用了操作系统提供的系统调用。如果你是想看这个,去下载glibc源码找吧,不过没什么意义,对于系统调用来说,libc只是起个二传手的作用,自己什么都不做。

在linux内核源码中linux-2.6.32.10/arch/x86/kernel/syscall_table_32.S中是所有系统调用接口定义的地方。搜索之后你会发现sys_fork最终调用了do_fork

再在linux-2.6.32.10/kernel/fork.c可以看到do_fork的实现。

所以具体的代码就在kernel/fork.c里了。

注意,你必须下载kernel源码才能找到上面提到的信息。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com