#include <vnode.h>
成员变量 | |
int(* | Create )(struct Vnode *parent, const char *name, int mode, struct Vnode **vnode) |
创建节点 更多... | |
int(* | Lookup )(struct Vnode *parent, const char *name, int len, struct Vnode **vnode) |
查询节点 更多... | |
int(* | Open )(struct Vnode *vnode, int fd, int mode, int flags) |
打开节点 更多... | |
ssize_t(* | ReadPage )(struct Vnode *vnode, char *buffer, off_t pos) |
ssize_t(* | WritePage )(struct Vnode *vnode, char *buffer, off_t pos, size_t buflen) |
int(* | Close )(struct Vnode *vnode) |
关闭节点 更多... | |
int(* | Reclaim )(struct Vnode *vnode) |
回 收节点 更多... | |
int(* | Unlink )(struct Vnode *parent, struct Vnode *vnode, const char *fileName) |
取消硬链接 更多... | |
int(* | Rmdir )(struct Vnode *parent, struct Vnode *vnode, const char *dirName) |
删除目录节点 更多... | |
int(* | Mkdir )(struct Vnode *parent, const char *dirName, mode_t mode, struct Vnode **vnode) |
创建目录节点 更多... | |
int(* | Readdir )(struct Vnode *vnode, struct fs_dirent_s *dir) |
读目录节点 更多... | |
int(* | Opendir )(struct Vnode *vnode, struct fs_dirent_s *dir) |
打开目录节点 更多... | |
int(* | Rewinddir )(struct Vnode *vnode, struct fs_dirent_s *dir) |
定位目录节点 更多... | |
int(* | Closedir )(struct Vnode *vnode, struct fs_dirent_s *dir) |
关闭目录节点 更多... | |
int(* | Getattr )(struct Vnode *vnode, struct stat *st) |
获取节点属性 更多... | |
int(* | Setattr )(struct Vnode *vnode, struct stat *st) |
设置节点属性 更多... | |
int(* | Chattr )(struct Vnode *vnode, struct IATTR *attr) |
改变节点属性(change attr) 更多... | |
int(* | Rename )(struct Vnode *src, struct Vnode *dstParent, const char *srcName, const char *dstName) |
重命名 更多... | |
int(* | Truncate )(struct Vnode *vnode, off_t len) |
缩减或扩展大小 更多... | |
int(* | Truncate64 )(struct Vnode *vnode, off64_t len) |
缩减或扩展大小 更多... | |
int(* | Fscheck )(struct Vnode *vnode, struct fs_dirent_s *dir) |
检查功能 更多... | |
int(* | Link )(struct Vnode *src, struct Vnode *dstParent, struct Vnode **dst, const char *dstName) |
int(* | Symlink )(struct Vnode *parentVnode, struct Vnode **newVnode, const char *path, const char *target) |
ssize_t(* | Readlink )(struct Vnode *vnode, char *buffer, size_t bufLen) |
读目录节点
创建一个目录时,实际做了3件事:在其“父目录文件”中增加一个条目;分配一个inode;再分配一个存储块, 用来保存当前被创建目录包含的文件与子目录。被创建的“目录文件”中自动生成两个子目录的条目,名称分别是:“.”和“..”。 前者与该目录具有相同的inode号码,因此是该目录的一个“硬链接”。后者的inode号码就是该目录的父目录的inode号码。 所以,任何一个目录的"硬链接"总数,总是等于它的子目录总数(含隐藏目录)加2。即每个“子目录文件”中的“..”条目, 加上它自身的“目录文件”中的“.”条目,再加上“父目录文件”中的对应该目录的条目。