首页 > 代码库 > 与进程联系的文件结构的关系示意图

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

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

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;};

 

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