📄 filesys.h
字号:
#define SYSOPENFILE 40 //simulate disk format#define BLOCKSIZE 1024#define BLOCKNUM 1024#define SUPBLOCKSIZE 1#define INODETABLESIZE (sizeof(struct inode))#define INODENUMBER 1024#define INODEBITMAPSIZE 1#define BLOCKBITMAPSIZE 1#define DIRBLOCK 2#define DATABLOCKSTART (SUPBLOCKSIZE+INODETABLESIZE+INODEBITMAPSIZE+BLOCKBITMAPSIZE)#define DIRSIZE 14 #define PWDSIZE 12 #define PWDNUM 32 #define NOFILE 20 #define NADDR 10 #define USERNUM 10#define DIRNUM 32/*filesys*/#define DINODESTART 2*BLOCKSIZE#define DATASTART (2+DINODEBLK)*BLOCKSIZE#define DIEMPTY 00000#define DIFILE 01000#define DIDIR 02000#define UDIREAD 00001#define UDIWRIRE 00002#define UDIEXECUTE 00004#define GDIREAD 00010#define GDIWRITE 00020#define GDIEXECUTE 00040#define ODIREAD 00100#define ODIWRITE 00200#define ODIEXECUTE 00400#define DEFAULTMODE 00077#define ROOTMODE 00007//#define READ 1#define WRITE 2#define EXECUTE 3/*i_flag;*/#define IUPDATE 00002#define INVARABLE 00000/*s_fmod*/#define SUPDATE 00002#define SINVARABLE 00000/*f_flag*/#define FREAD 00001#define FWRITE 00002#define FAPPEND 00004#define DISKFULL 65535#define DISKSUCCESS 65534#define SEEK_SET 0#define MAPERR 65535struct dir{ char name[DIRSIZE]; unsigned short d_ino; unsigned short filetype;};struct dirs{ struct dir direct[DIRNUM]; unsigned short size;};struct inode { //struct inode *i_forw; //struct inode *i_back; char i_flag; // unsigned short i_ino; // unsigned short n_refer;
// unsigned short di_mode; //inode type (file..... char di_uid[8]; // char di_gid[8]; // unsigned short di_size; // unsigned short di_addr[NADDR]; //};struct user{ char u_uid[8]; // char u_gid[8]; // unsigned short u_ofile[NOFILE]; // unsigned short u_nf; // char password[PWDSIZE]; unsigned short n_inode;};struct filesys{ unsigned short s_isize; // unsigned long s_fsize; // unsigned int s_nfree; //free number unsigned int s_pfree; //free pointer char* s_free; //block map unsigned int s_ninode; //inode number unsigned short s_pinode; //inode pointer char* s_inode; //inode map unsigned int s_rinode; // //char s_fmod;
//};struct usergroup{ struct user users[USERNUM]; unsigned short size;//};struct file{ char f_flag; // unsigned int f_count; // struct inode *f_inode; // unsigned long f_off; //};extern char block_buf[BLOCKSIZE]; extern char inode_buf[BLOCKSIZE]; extern struct filesys* super; extern unsigned short currentuser;extern FILE* fd;extern struct usergroup directory_1;extern struct dirs directory_2;extern char command1[100];extern char command2[100];extern char command3[100];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -