linux中的link,unlink,open,close
来源:互联网 发布:java并发框架支持锁 编辑:程序博客网 时间:2024/06/04 00:24
每一个文件都有一个struct stat的结构体来获得文件信息,其中成员st_nlink代表文件的链接数。
当创建一个文件时,文件的链接数为1。
通常open()一个已经存在的文件不会影响文件的链接数。open的作用只是使调用进程与文件之间建立一种访问关系,即open之后返回fd,调用进程可以通过fd来read、write、ftruncate等一系列对文件的操作。
close() 就是消除这种调用进程与文件之间的访问关系。也不会影响文件的链接数。在调用close时,内核会检查打开该文件的进程数,如果此数为0,进一步检查文件的链接数,如果这个数也为0,那么久删除文件内容。
link()创建一个新目录项,并且增加一个链接数。
unlink()函数删除目录项,并且减少一个链接数。如果链接数达到0并且没有任何进程打开该文件,该文件内容才被真正删除。如果unlink之前没有close,那么依旧可以访问文件内容。
综上,真正影响链接数的操作是link、unlink和open的创建。删除文件内容的真正含义是文件的链接数0,而这个操作的本质使用unlink来完成。close能够实施删除文件内容的操作,必定因为在close之前有一个unlink操作。
参考资料:Linux中的link,unlink,close,fclose详解
0 0
- linux中的link,unlink,open,close
- Linux中link,unlink,close,fclose详解
- linux中link,unlink,close,fclose详解 .
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- Linux中link,unlink,close,fclose详解
- 第7章第4题
- 速查表:常用算法和数据结构的复杂度
- 黑马程序员——Java基础---IO流<实例>
- Java策略模式
- 数据挖掘十大经典算法--CART: 分类与回归树
- linux中的link,unlink,open,close
- [030] 微信公众帐号开发教程第6篇-文本消息的内容长度限制揭秘
- Android中Anmation运动时的监听方法
- 写给代码技术同事:被人信任才能有广阔未来
- CODE[VS] 1013 求先序排列
- Yii2创建控制器(createController)
- uva 340
- 怎样选购照片打印机
- CentOS6.5编译内核步骤