linux文件系统--虚拟文件系统与进程
来源:互联网 发布:免费淘宝客高佣金采集 编辑:程序博客网 时间:2024/05/22 08:21
1.fs_struct
struct fs_struct {//建立进程与文件系统的关系 atomic_t count; /*结构的使用计数*/ rwlock_t lock; /*保护该结构体的锁*/ int umask; /*默认的文件访问权限*/ struct dentry * root; /*根目录的目录项对象*/ struct dentry * pwd; /*当前工作目录的目录项对象*/ struct dentry * altroot; /*可供选择的根目录的目录项对象*/ struct vfsmount * rootmnt; /*根目录的安装点对象*/ struct vfsmount * pwdmnt; /*pwd的安装点对象*/ struct vfsmount * altrootmnt;/*可供选择的根目录的安装点对象*/};fs_struct保存了关联特定进程和文件的所有信息。
(1)count
count保存应用特定fs_struct的进程描述符的数目。
(2)umask
保存一个掩码,它表示将要在打开的文件上设置的许可权。
(3)root,pwd和altroot
root和pwd分别指向进程的根目录和当前工作目录。altroot指向可选根目录的目录项结构。
(4)rootmnt,pwdmnt和altroot,分别指向进程根目录的安装文件系统对象,当前工作目录的安装文件系统和可选根目录的安装文件系统对象。
2.files_struct
files_struct包含打开文件和其描述符的相关信息。
include/linux/file.h22 struct files_struct {23 atomic_t count;24 spinlock_t file_lock25 int max_fds;26 int max_fdset;27 int next_fd;28 struct file ** fd; 29 fd_set *close_on_exec;30 fd_set *open_fds;31 fd_set close_on_exec_init;32 fd_set open_fds_init;33 struct file * fd_array[NR_OPEN_DEFAULT];34 };
(1)max_fds表示进程能够打开的文件的最大数。默认值32.
(2)max_fdset
表示文件描述符的最大值。
(3)next_fd
保存下一个将要分配的文件描述符的值。
(4)fd
fd数组指向打开的文件对象的数组。
(5)fdset
fdset数据类型可被追溯到保存无符号整型数组的结构体,数组的每个元素保存一个文件描述符。
文件描述符的宏
宏
描述
FD_SET
在集合中设置文件描述符
FD_CLR
从集合中清楚文件描述符
FD_ZERO
清除文件描述符集.
FD_ISSET
如果文件描述符被设置,返回
(6)fd_array
fd_array素组指针指向前32个打开的文件描述符。
进程与文件系统各部分的关系:
- linux文件系统--虚拟文件系统与进程
- linux虚拟文件系统与物理文件系统
- linux文件系统(二) - 虚拟文件系统
- Linux套接字与虚拟文件系统
- Linux 虚拟文件系统概观
- Linux 虚拟文件系统概观
- linux虚拟文件系统浅析
- Linux虚拟文件系统
- Linux虚拟文件系统二
- Linux 的虚拟文件系统
- LINUX虚拟文件系统
- linux虚拟文件系统浅析
- Linux虚拟文件系统(VFS)
- linux虚拟文件系统浅析
- linux虚拟文件系统浅析
- Linux虚拟文件系统--open()
- linux虚拟文件系统浅析
- linux虚拟文件系统浅析
- android 设置系统屏幕亮度
- Man Left in the Middle Attack Method中间人攻击
- 适配器模式
- 中关村-DIY笔记本之散热底座导购
- Java泛型简明教程
- linux文件系统--虚拟文件系统与进程
- AchartEngine的柱状图属性设置
- 最小操作数-Java实现
- Erlang 不能错过的盛宴
- 设计模式介绍
- SQL级联删除
- Opencv Python版学习笔记(一)图像直方图
- Oracle中组合索引的使用详解
- Android开发环境搭建