下面是Linux fs 相关数据结构的一些笔记,列出的是我开发中经常用到的一些结构成员,以linux 3.12为例。
#dentry
struct dentry{
struct dentry *d_parent; /* parent directory */
struct qstr d_name;
struct inode *d_inode; /* Where the name belongs to */
unsigned char d_iname[DNAME_INLINE_LEN]; /* small names */
...
};
dentry: directory entry
detail: http://goo.gl/Lisgeg
#inode
struct inode{
unsigned long i_ino;
umode_t i_mode;
struct super_block *i_sb;
const struct file_operations *i_fop;
void *i_security;
...
};
detail: http://goo.gl/TphYHp
inode->i_mode 是 16位整数,下面是8进制表示
#define S_IFMT 00170000
#define S_IFSOCK 0140000
#define S_IFLNK 0120000
#define S_IFREG 0100000
#define S_IFBLK 0060000
#define S_IFDIR 0040000
<