⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.txt

📁 模拟采用二级目录结构的磁盘文件系统的结构体源代码
💻 TXT
字号:
1)i节点

struct inode {

struct inode *i_forw;

struct inode *i_back;

char i_flag;

unsigned int i_ino;                              / *磁盘i节点标号 */

unsigned int i_count;                           /*引用计数 */

unsigned short di_number;                  /*关联文件数,当为0时,则删除该文件 */

unsigned short di_mode;                            /*存取权限 */

unsigned short di_uid;                         /*磁盘i节点用户id */

unsigned short di_gid;                         /*磁盘i节点组id */

unsigned int di_addr [NADDR];           /*物理块号 */

2)磁盘i节点

Struct dinode

    {

     unsigned short di_number;                 /*关联文件数*/

     unsigned short di_mode;                    /*存取权限 */

 

     unsigned short di_uid;

     unsigned short di_gid;

     unsigned long di_size;                       /*文件大小 */

     unsigned int di_addr [NADDR];         /*物理块号 */

}

3)目录项结构

Struct direct

    {

     char d_name [DIRSIZ];                           /*目录名 */

            unsigned int d_ino;                            /*目录号 */

}

4)超级块

Struct filsys

    {

     unsigned short s_isize;                             /*i节点块块数 */

     unsigned long s_fsize;                              /*数据块块数 */

 

     unsigned int s_nfree;                                /*空闲块块数 */

     unsigned short s_pfree;                                   /*空闲块指针 */

     unsigned int s_free [NICFREE];                /*空闲块堆栈 */

 

     unsigned int s_ninode;                              /*空闲i节点数 */

     unsigned short s_pinode;                          /*空闲i节点指针 */

     unsigned int s_inode [NICINOD];                    /*空闲i节点数组 */

     unsigned int s_rinode;                              /*铭记i节点 */

 

     char s_fmod;                                                 /*超级块修改标志 */

  };

5)用户密码

Struct pwd

    {

     unsigned short P_uid;

     unsigned short P_gid;

     char passward [PWOSIZ];

    };

6)目录

Struct dir

    {

     struct direct direct [DIRNUM];

     int size;

    };

7)查找内存i节点的hash表

Struct hinode

    {

     struct inode *i_forw;

    };

8)系统打开表

Struct file

    {

     char f_flag;                               /*文件操作标志 */

     unsigned int f_count;                 /*引用计数 */

     struct inode *f_inode                 /*指向内存i节点 */

     unsigned long f_off;                   /*读/写指针 */

    };

9)用户打开表

Struct user

           {

     unsigned short u_default_mode;

     unsigned short u_uid;                        /*用户标志 */

     unsigned short u_gid;                        /*用户组标志 */

     unsigned short u_ofile [NOFILE]              /*用户打开表 */

    };

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -