os
文章平均质量分 75
木子晓猛
成熟 稳重 浪漫 幽默 内涵
展开
-
UNIX环境高级编程--文件共享
1.文件共享 内核使用3种数据结构来表示打开的文件,他们的关系如下: 每个进程都有一张进程表项,记录进程打开的文件: fd标志:close_on_exec,若一个文件描述符在close_on_exec中的对应比特位被设置,那么在执行execl函数时该描述符将被关闭, 即在execl函数执行的程序中直接使用该描述符,则会出错(但是如果是子进程,则仍然可以使用该FD,不管close_on_转载 2015-11-09 15:29:29 · 432 阅读 · 0 评论 -
使用FD_CLOEXEC实现close-on-exec,关闭子进程无用文件描述符
我们经常会碰到需要fork子进程的情况,而且子进程很可能会继续exec新的程序。这就不得不提到子进程中无用文件描述符的问题! fork函数的使用本不是这里讨论的话题,但必须提一下的是:子进程以写时复制(COW,Copy-On-Write)方式获得父进程的数据空间、堆和栈副本,这其中也包括文件描述符。刚刚fork成功时,父子进程中相同的文件描述符指向系统文件表中的同一项(这也意味着转载 2015-11-10 15:23:08 · 789 阅读 · 0 评论