首页 > 其他 > 详细

重读APUE(3)-dup与文件表项

时间:2019-10-30 09:51:23      阅读:109      评论:0      收藏:0      [点我收藏+]

下图为调用dup之后的文件指针状态,包含如下信息:

1. dup选择了一个最小的未使用的描述符3;

2. dup(1)之后,描述符1和描述符3指向同一个文件表项;

3. dup(1)的返回值即为复制得到的描述符3;

4. 补充dup2,dup2可以指定复制的目标描述符,如果该描述符与被复制的描述符相同,会直接返回该描述符;如果不同,则会先关闭描述符,然后进行复制;注意,dup2的关闭和复制操作是原子的;

5. 补充open,进程每一次open调用都会打开一个新的文件表项,一个新的描述符指向这个文件表项,当open同一个文件多次也会新建描述符和文件表项;如果重复打开同一个文件,则文件表项中的node节点指向同一个inode;

技术分享图片

下图为多次open同一个文件的情况(fd1,fd3);其中fd2=dup(fd1);

技术分享图片

图片来自:APUE

 

重读APUE(3)-dup与文件表项

原文:https://www.cnblogs.com/wanpengcoder/p/11762720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!