免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: shuzhiquan
打印 上一主题 下一主题

请教文件描述符标志FD_CLOEXEC设置怎样理解?? [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2004-11-24 14:58 |只看该作者

请教文件描述符标志FD_CLOEXEC设置怎样理解??

看看,进程ID都没有变。

未命名.jpg (54.85 KB, 下载次数: 32)

未命名.jpg

论坛徽章:
0
12 [报告]
发表于 2004-11-24 15:05 |只看该作者

请教文件描述符标志FD_CLOEXEC设置怎样理解??

( :,我说的新进程是指执行的东东不一样了嘛,不是说又fork了一个,已经很明确了,只有fork才能有新进程的.
我的意思是说原来的空间都覆盖了,怎么原来的文件描述字还有呢??

论坛徽章:
0
13 [报告]
发表于 2004-11-24 15:13 |只看该作者

请教文件描述符标志FD_CLOEXEC设置怎样理解??

原帖由 "shuzhiquan" 发表:
( :,我说的新进程是指执行的东东不一样了嘛,不是说又fork了一个,已经很明确了,只有fork才能有新进程的.
我的意思是说原来的空间都覆盖了,怎么原来的文件描述字还有呢??


execve()启动loader来加载一个可执行程序,覆盖空间;但是注意,覆盖空间知识覆盖用户空间,系统空间根本不在被覆盖的范围内,能把tastk_struct的参数调整几个就不错了。这里我不大懂,但道理就是这么一回事:-)

论坛徽章:
0
14 [报告]
发表于 2007-06-28 08:52 |只看该作者
“由一个现有进程调用6个exec函数中的某一个,exec把当前进程映象替换成新的程序文件,而且该新程序通常从main函数开始执行,进程id并不改变。我们称调用exec的进程为调用进程(calling process),称新执行的进程为新程序(new program).”-------摘自<<UNIX网络编程第三版>>P95

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
15 [报告]
发表于 2007-06-28 11:19 |只看该作者
原帖由 shuzhiquan 于 2004-11-24 15:05 发表
( :,我说的新进程是指执行的东东不一样了嘛,不是说又fork了一个,已经很明确了,只有fork才能有新进程的.
我的意思是说原来的空间都覆盖了,怎么原来的文件描述字还有呢??

进程的打开文件列表是在内核中维护的(用户态要想访问这些打开文件只有通过文件描述符,但是如果你自己把某个文件描述符搞忘记了,例如说通过执行 exec 把自己的地址空间替换了,并不意味着内核就会忘记你曾经打开过该文件),只要不关闭(显式或者隐式),就一直是打开的,至于这些打开的文件你能不能访问,那是另外一回事情。例如说,

  1. fd = open("foo", ...);
  2. fd = -1;
复制代码

那么,这个 foo 文件在该进程生存期间一直是打开的,但是你却访问不了,也关不了(当然,如果你可以猜出其对应的文件描述符,那么另说)。

另外,在 exec 过程中仍然打开的文件也未必就无法访问。由于对某些文件描述符的使用存在约定,例如说 0, 1, 2,那么可以在执行 exec 之前将这些描述符 dup 成需要的,然后通过 exec 执行的程序就可以通过这些约定的文件描述符访问对应的文件(此即重定向的一般实现方法)。

[ 本帖最后由 MMMIX 于 2007-6-28 11:24 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP