FILE结构体与文件描述符
来源:互联网 发布:怒战辅助软件 编辑:程序博客网 时间:2024/04/29 16:27
文件描述符(file descriptors,简称fd):它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表(file_struct)。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。文件描述符是一个非负整数。
在Linux中,进程是通过文件描述符访问文件的。
文件描述符表(file_struct):每个PCB都有file_struct记录文件描述符的使用情况,是进程的私有数据。文件描述符表的每一项都有一个指向被打开的文件的指针。
已经打开的文件在内核中用FILE结构体表示,所以文件描述符表指向FILE结构体。
文件描述符与FILE结构体的关系图如下:
其中,0、1、2是既定的标准文件描述符,普通文件的描述符一般情况下从3开始。
这三个标准文件通常是默认打开的,若是关闭其中一个时,普通文件的描述符就从第一个没有被占用的描述符开始。
标准文件描述符图如下:
注:POSIX表示可移植操作系统接口,POSIX标准定义了操作系统应该为应用程序提供的接口标准。
接下来就来看一下FILE结构体:
file结构体在stdio.h中有如下定义:
struct
_iobuf {
char
*_ptr;
//文件输入的下一个位置
int
_cnt;
//当前缓冲区的相对位置
char
*_base;
//指基础位置(即是文件的其始位置)
int
_flag;
//文件标志
int
_file;
//文件的有效性验证
int
_charbuf;
//检查缓冲区状况,如果无缓冲区则不读取
int
_bufsiz;
//文件的大小
char
*_tmpfname;
//临时文件名
};
typedef
struct
_iobuf
FILE
;
总结:每个文件描述符都有一个文件描述符表,而文件描述符表的每一项都指向FILE结构体。
0 0
- FILE结构体与文件描述符
- FILE结构体与文件描述符
- FILE结构体与文件描述符
- 文件描述符(fd)与FILE结构体
- 文件描述符以及file结构体
- 探索文件描述符(fd)与FILE结构体之间的关系
- 探索文件描述符(fd)与FILE结构体之间的关系
- 文件描述符(fd)与file结构体及其关系
- 【Linux】文件描述符和FILE结构体
- 浅析文件描述符fd和FILE结构体
- FILE结构体(文件描述符及缓冲区)
- Linux 文件描述符及FILE结构体
- Linux中文件描述符与FILE结构体
- FILE与文件描述符的对比
- 文件描述符fd与FILE
- 简析文件描述符(fd)和FILE结构体的关系
- 文件描述符(fd)和FILE结构体的关系
- 简析文件描述符(fd) 和 FILE结构体的关系
- maven学习笔记2
- hdu 6025
- 期权PCP平价原理
- YangCheney's blog
- Longest Valid Parentheses
- FILE结构体与文件描述符
- 51NOD 1001数组中和等于K的数对
- memset 函数详解
- SDIO驱动(6)命令的构建和发送
- 浅谈前端性能优化(八)——cookie优化
- select
- Lintcode43 Maximum Subarray III solution 题解
- 记录自已学习之位操作符
- 归纳迁移学习算法---Adaboost 算法实例解析二