关于文件结构

news/2024/7/8 6:08:01

转:https://blog.csdn.net/yuzhihui_no1/article/details/51272563

file结构在include\linux\fs.h中定义如下:

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];/* 文件对象指针的初始化数组*/

};

2.用户打开文件表

每个进程用一个files_struct结构来记录文件描述符的使用情况,这个files_struct结构称为用户打开文件表,它是进程的私有数据。files_struct结构在include/linux/sched.h中定义如下:

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];/* 文件对象指针的初始化数组*/

};

 

3.关于文件系统信息的fs_struct结构

第三个结构是fs_struct,在2.4以前的版本中在include/linux/sched.h 中定义为:

struct fs_struct {

atomic_t count;

int umask;

struct dentry * root, * pwd;

};


http://www.niftyadmin.cn/n/3540317.html

相关文章

WINDOWS 7 家庭普通版升级旗舰版

在控制面板里或者开始菜单里打开 Windows Anytime Upgrade 就可以升级了 以下是升级的密钥 TG664-TJ7YK-2VY3K-4YFY6-BCXF4 MVG64-RQDVY-KB9RM-MX9WT-MW824 TDTY2-6HJ49-46PCK-6HY88-KQXXX FKDJ2-RCXKD-TFW4H-2PTGK-MMMH8 H67R8-4HCH4-WGVKX-GV888-8D79B J4M92-42VH8-M9JWJ-BR7…

Qvod的一些简单分析

2019独角兽企业重金招聘Python工程师标准>>> 打算造一个基于bt播放的流媒体播放器. 于是简单的分析了下目前正是基于bt播放的流媒体播放器qvod. qvod总体实现比较简单, 从软件设计上大致可以看出分成三大部分: 1. tracker, 这个服务器在qvod发布的种子里可以看到, 不…

CAN与RS485比较

来源:CSDN 原文:https://blog.csdn.net/reille/article/details/6135546 最近一个项目总体方案设计为分布式系统,于是在通讯上纠结于CAN总线还是RS485。因此在网上搜索一些了一些关于RS485和CAN总线的资料,除进一步认识RS485通…

ubuntu下wine QQ的安装

换成ubuntu之后,QQ的问题一直困扰着。webQQ用起来很不爽。偶尔间从同事那了解wine可以安装windows软件。就尝试着装QQ。参考了网上N多的帖子,终于给装好了,小兴奋下... 写此博客仅为记录下安装流程,方面下次安装。 1、首先安装win…

华为公司软件编程规范

目 录 1 排版 6 2 注释 11 3 标识符命名 18 4 可读性 20 5 变量、结构 22 6 函数、过程 28 7 可测性 36 8 程序效率 40 9 质量保证 44 10 代码编辑、编译、审查 50 11 代码测试、维护 52 12 宏 53 1 排版 1-1:程序块要采用缩进风格编写&a…

UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)

UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) UART协议虽然速率较低,但协议简单,实现起来很便捷。 UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1&#…

vb的property和event

把MSDN抄下来备用.呵呵 Event 语句 定义用户自定义的事件。 语法 [Public] Event procedurename [(arglist)] Event 语句包含下面部分: 部分 描述 Public 可选的。指定该 Event 在整个工程中都是可见的。缺省情况下 Events 类型是 Public。应注意&#x…

I/O口

1.0 关于I/O 口 发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 //一般用用ad输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3…