免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1654 | 回复: 1
打印 上一主题 下一主题

请教exec系统调用实现算法及其返回值? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-02 19:36 |只看该作者 |倒序浏览
exec函数是用来执行文件的,它的实现算法
输入:文件名,自变量表,环境变量表
1。文件名 → 找到 inode;
2。检查文件可执行,检查文件头可否装入;
3。自变量,环境变量拷贝到系统空间;
4。解除原有分区(正文段,数据段);
5.    保留原有proc, user区,核心栈;
6.    分配新分区(正文段,数据段,bss区,用户栈) ,分配页表,连入进程虚拟空间;
7.    自变量,环境变量拷贝到用户栈顶;
8.  处理setuid程序、setgid程序;
        if (i_mode&ISUID)  u_uid = i_uid(有效UID) if (i_mode&ISGID)  u_gid = i_gid (有效GID)
9.   处理跟踪程序; 向自己发信号(SIGTRAP)
10. 清除已设置的信号处理程序(缺省值);
11. 保留打开文件(缺省); (如用户打开文件表项中的fd标志置1
            则关闭对应的打开文件)
12. 初始化中断栈保存区; pc = 程序入口地址,sp = 新用户栈顶
那么它在哪些情况下发生错误,调用的返回值情况都有哪些??

论坛徽章:
0
2 [报告]
发表于 2006-01-03 18:22 |只看该作者

从朋友出得到帮助跟大家分享!

出错的情况有文件名不存在,文件不可执行,无执行权限等
出错的时候返回调用者进程号。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP