inode.h
来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C头文件 代码 · 共 82 行
H
82 行
/* inode.h 4.10 82/02/27 *//* * The I node is the focus of all file activity in UNIX. * There is a unique inode allocated for each active file, * each current directory, each mounted-on file, text file, and the root. * An inode is 'named' by its dev/inumber pair. (iget/iget.c) * Data, from mode on, is read in from permanent inode on volume. */#define NADDR 13struct inode { char i_flag; char i_count; /* reference count */ dev_t i_dev; /* device where inode resides */ ino_t i_number; /* i number, 1-to-1 with device address *//* begin read from disk */ u_short i_mode; short i_nlink; /* directory entries */ short i_uid; /* owner */ short i_gid; /* group of owner */ off_t i_size; /* size of file */ union { struct i_f { daddr_t if_addr[NADDR]; /* if normal file/directory */ daddr_t if_lastr; /* last read (read-ahead) */ } i_f; struct i_d { daddr_t id_rdev; /* i_addr[0] */ } i_d; struct i_s { struct socket *is_socket; } i_s;#define i_addr i_f.if_addr#define i_lastr i_f.if_lastr#define i_rdev i_d.id_rdev#define i_socket i_s.is_socket } i_un;/* end read from disk */ short i_XXXXXX; /* ### *//* SHOULD USE POINTERS, NOT INDICES, FOR HAS CHAIN */ short i_hlink; /* link in hash chain (iget/iput/ifind) */};#ifdef KERNELstruct inode *inode, *inodeNINODE;int ninode;struct inode *rootdir; /* pointer to inode of root directory */struct inode *ialloc();struct inode *ifind();struct inode *iget();struct inode *owner();struct inode *maknode();struct inode *namei();#endif/* flags */#define ILOCK 01 /* inode is locked */#define IUPD 02 /* file has been modified */#define IACC 04 /* inode access time to be updated */#define IMOUNT 010 /* inode is mounted on */#define IWANT 020 /* some process waiting on lock */#define ITEXT 040 /* inode is pure text prototype */#define ICHG 0100 /* inode has been changed *//* modes */#define IFMT 0170000 /* type of file */#define IFCHR 0020000 /* character special */#define IFDIR 0040000 /* directory */#define IFBLK 0060000 /* block special */#define IFREG 0100000 /* regular */#define IFLNK 0120000 /* symbolic link */#define IFPORTAL 0140000 /* portal */#define ISUID 04000 /* set user id on execution */#define ISGID 02000 /* set group id on execution */#define ISVTX 01000 /* save swapped text even after use */#define IREAD 0400 /* read, write, execute permissions */#define IWRITE 0200#define IEXEC 0100
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?