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源码才能找到上面提到的信息。