与进程联系的文件结构的关系示意图

与进程联系的文件结构的关系示意图

与进程联系的文件结构的关系示意图

struct file



{



 struct list_head        f_list;    /*所有打开的文件形成一个链表*/



 struct dentry           *f_dentry; /*指向相关目录项的指针*/



 struct vfsmount         *f_vfsmnt; /*指向VFS安装点的指针*/



 struct file_operations  *f_op;     /*指向文件操作表的指针*/



  mode_t f_mode;                                  /*文件的打开模式*/



  loff_t f_pos;                                   /*文件的当前位置*/



   unsigned short f_flags;                         /*打开文件时所指定的标志*/



   unsigned short f_count;                           /*使用该结构的进程数*/



   unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin;



   /*预读标志、要预读的最多页面数、上次预读后的文件指针、预读的字节数以及



    预读的页面数*/



  int f_owner;                  /* 通过信号进行异步I/O数据的传送*/



  unsigned int         f_uid, f_gid;  /*用户的UID和GID*/



  int                 f_error;       /*网络写操作的错误码*/



 



  unsigned long f_version;           /*版本号*/



   void *private_data;                      /* tty驱动程序所需 */



 



};

 

struct files_struct {



     atomic_t count;        /* 共享该表的进程数 */



     rwlock_t file_lock;     /* 保护以下的所有域,以免在



tsk->alloc_lock中的嵌套*/



     int max_fds;           /*当前文件对象的最大数*/



     int max_fdset;        /*当前文件描述符的最大数*/



          int next_fd;          /*已分配的文件描述符加1*/



      struct file ** fd;      /* 指向文件对象指针数组的指针 */



      fd_set *close_on_exec;  /*指向执行exec(  )时需要关闭的文件描述符*/



      fd_set *open_fds;     /*指向打开文件描述符的指针*/



       fd_set close_on_exec_init;/* 执行exec(  )时需要关闭的文件描述符的初            值集合*/



          fd_set open_fds_init;  /*文件描述符的初值集合*/



      struct file * fd_array[32];/* 文件对象指针的初始化数组*/



};

 

struct fs_struct {



         atomic_t count;



         rwlock_t lock;



         int umask;



        struct dentry * root, * pwd, * altroot;



         struct vfsmount * rootmnt, * pwdmnt, * altrootmnt;



};

 

你可能感兴趣的:(文件)