fork子进程的第一次跳转
来源:互联网 发布:韩国海军实力知乎 编辑:程序博客网 时间:2024/06/05 17:37
快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
Cygwin checkout-2008-09-28
vs2008
欢迎转载,但请保留作者信息
在fork子进程初始化完成后,它将跳转到父进程fork时指定的位置:
void
dll_crt0_1 (void *)
{
……………….
if (in_forkee)
{
………………..
longjmp (fork_info->jmp, true);
}
…………………
}
在这里fork_info是父进程调用CreateProcess时传递进来的参数,而jmp则是在父进程的fork函数中指定:
CYG_API int fork ()
{
frok grouped;
……………..
ischild = !!setjmp (grouped.ch.jmp);
volatile char * volatile var_esp;
//__asm__ volatile ("movl %%esp,%0": "=r" (esp));
__asm
{
mov var_esp, esp;
}
if (!ischild)
res = grouped.parent (var_esp);
else
{
res = grouped.child (var_esp);
ischild = true; /* might have been reset by fork mem copy */
}
………………..
}
因此,子进程的第一次跳转将跳到fork函数中setjmp的下一行开始执行。
1 参考资料
cygwin fork子进程对父进程数据的复制(2009-9-8)
cygwin下的共享内存区(2009-9-8)
cygwin下的user heap(2009-9-8)
cygwin下的cygheap:从父进程到子进程的复制(2009-9-7)
cygwin下的/etc/fstab(2009-9-7)
cygwin关键技术:fork(2009-9-4)
cygwin关键技术:设备模拟(2009-9-4)
cygwin关键技术:cygheap(2009-9-2)
cygwin关键技术:tls(2009-8-24)
- fork子进程的第一次跳转
- fork产生僵死子进程的问题
- [linux 0.11]fork()--子进程的返回
- 关于fork创建子进程的疑问
- fork 产生一个空的子进程
- fork()后父子进程的地址空间
- linux子进程fork
- fork子进程缓冲
- fork创建子进程
- fork()生成子进程
- fork创建子进程
- fork创建子进程
- fork()创建子进程
- cygwin fork子进程对父进程数据的复制
- fork后子进程与父进程的不同属性
- 异步回收fork出的子进程(僵尸进程)
- fork 后子进程copy父进程的什么资源
- 异步回收fork出的子进程(僵尸进程)
- 做你热爱的工作,那你不是在工作而是在享受!
- sql孤立用户解决
- core dump
- Squid-Linux下的使用详解
- Java多线程初学者指南(10):使用Synchronized关键字同步类方法
- fork子进程的第一次跳转
- lighttpd.conf 注释
- 数据库设计5步骤
- c# 测试是否是汉字
- 我收藏的几个图标网
- 树形菜单
- 防百度js智能提示
- C# 实现渐变透明图片
- 你知道为什么考你这个?——Java面试题及答案汇总分析(3)