不仅进入系统调用时要伪装现场,fork系统调用时返回时也需要伪装现场。因为是“无中生有”。
例如在fork创建新进程时,系统要保证新进程与旧进程一样,从相同的代码开始执行。比如:
pid_t pid;
80483f0: &
例如在fork创建新进程时,系统要保证新进程与旧进程一样,从相同的代码开始执行。比如:
#include<stdio.h>
#include<unistd.h>
int main()
{pid_t pid;
if((pid=fork())>0)
{
printf("parent\n");
}
else if(pid==0)
{
printf("child\n");
}
else
printf("error\n");
return 0;
}
在fork()处,也就是执行call指令的过程中,产生了一个新进程。80483f0: &

本文探讨了Linux操作系统中的核心组件——fork()系统调用。通过一个简单的C程序示例,展示了如何使用fork()创建子进程。在父进程中,fork()返回子进程的PID大于0,而在子进程中,PID则为0。这为读者提供了一个直观的入口,以了解进程创建的底层机制。
1822

被折叠的 条评论
为什么被折叠?



