当前位置: 技术问答>linux和unix
求助:Unix文件系统目录文件
来源: 互联网 发布时间:2016-12-25
本文导语: 本帖最后由 zerolzb 于 2011-08-24 11:49:45 编辑 Unix环境高级编程【W.Richard Stevens/Stephen A.Rago】【中文版.第2版】88页关于目录文件的内容,图文内容不到一页,研究了一天,实在是不能理解,哪位高人可以帮忙讲解一下吗...
书页已经拍照,请查看链接 http://hiphotos.baidu.com/zerolzb/pic/item/d426ffc2c16df85ee5dd3b95.jpg
|
我说一下我的理解吧,我看你这句划了线,“任何一个叶目录(不包含任何其他目录,也就是子目录的目录)其连接计数总是2,”,如果你用数据结构来实现的话,就是struct inode的引用计数为2。一个是 /xxx/yyy/testdir目录项,另一个是/xxx/yyy目录项。对应到Linux的话,
struct inode {
...
unsigned long i_ino;
atomic_t i_count;
...
};
struct dentry {
...
unsigned char d_iname[LEN];
struct inode *d_inode;
...
};
struct dentry parent = {..."/xxx/yyy"...};
struct dentry testdir = {..."/xxx/yyy/testdir"...};
struct inode mine = {...2549...};
========================================
mine.i_count is 2
parent.d_inode proint to &mine
testdir.d_inode proint to &mine
struct inode {
...
unsigned long i_ino;
atomic_t i_count;
...
};
struct dentry {
...
unsigned char d_iname[LEN];
struct inode *d_inode;
...
};
struct dentry parent = {..."/xxx/yyy"...};
struct dentry testdir = {..."/xxx/yyy/testdir"...};
struct inode mine = {...2549...};
========================================
mine.i_count is 2
parent.d_inode proint to &mine
testdir.d_inode proint to &mine