Chinaunix首页 | 论坛 | 博客
  • 博客访问: 268550
  • 博文数量: 38
  • 博客积分: 2208
  • 博客等级: 大尉
  • 技术积分: 374
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-22 13:50
个人简介

没有介绍

文章分类

全部博文(38)

文章存档

2017年(2)

2014年(1)

2012年(2)

2011年(5)

2008年(28)

分类: LINUX

2008-08-04 22:20:30

clone()是在C语言库中定义的一个封装函数,它负责建立心轻量级进程的堆栈并且对编程者隐藏的clone()系统调用。实现clone()系统调用 的sys_clone()服务例程没有fn和arg参数。实际上,封装函数把fn指针存放在子进程堆栈的某个位置处,该位置就是该封装函数本身返回地址存 放的位置。arg指针正好存放在子进程堆栈中fn的下面。当封装函数结束时,CPU从堆栈中取出返回地址,然后执行fn(arg)函数。

构造了一个调用关系,fn是封装函数的父函数的一部分。

堆栈情况如下:

0xC0000000 --------
            arg
            fn地址

0x00000000 --------  

阅读(6622) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~