Operating system 系统调用fork如何返回两个不同的值?
我正在学习一门操作系统课程,并为其中一个课程项目实现fork 代码基本上是这样的 1.查找未使用的进程 2.复制虚拟地址数据 3.在活页夹框架上复制 4.将返回值寄存器(rax)设置为0 5.将子进程设置为可运行 6.返回子进程的pid 所以我的问题是,既然子进程与父进程完全相同,就不会知道它在哪里(第4行)?然后继续执行fork(第5行和第6行),并最终返回它自己的pid。子进程是它的父进程的(几乎)精确副本。父级的内存内容在创建时复制到子级 但是,子对象有自己的堆栈。由于返回值在堆栈上传递,fork()可以返回两个不同的值,每个进程一个Operating system 系统调用fork如何返回两个不同的值?,operating-system,fork,Operating System,Fork,我正在学习一门操作系统课程,并为其中一个课程项目实现fork 代码基本上是这样的 1.查找未使用的进程 2.复制虚拟地址数据 3.在活页夹框架上复制 4.将返回值寄存器(rax)设置为0 5.将子进程设置为可运行 6.返回子进程的pid 所以我的问题是,既然子进程与父进程完全相同,就不会知道它在哪里(第4行)?然后继续执行fork(第5行和第6行),并最终返回它自己的pid。子进程是它的父进程的(几乎)精确副本。父级的内存内容在创建时复制到子级 但是,子对象有自己的堆栈。由于返回值在堆栈上传递,