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 + -
显示快捷键?