问题描述
- sys_fork in Linux about the stack base
-
Here is the code for sys_fork in Linux 2.6.24.asmlinkage int sys_fork(struct pt_regs regs) { return do_fork(SIGCHLD, regs.esp, ®s, 0, NULL, NULL); }
It seems child process base is a little different than his parent!
解决方案
?fork在英文中是叉子,分叉的意思,在函数fork中,取后面的意思。很形象的表示程序从这里分叉,fork函数创建了子进程,子进程和父进程同时(其实是cpu分时处理)开始运行分叉之后的程序。如果fork成功,子进程中fork的返回值是0,父进程中fork的返回值是子进程的进程号,getpid()返回的才是各自真是的进程号。?先看这段范例代码:#include?unistd.h>;?......
答案就在这里:fork in Linux
解决方案二:
你的问题是什么。fork从主进程当前位置创建一个子进程,并且复制当前的上下文,从这里分开。
时间: 2024-09-11 12:15:10