FILE,文件句柄,打开文件列表和内核文件对象的关系

C语言通过FILE结构指针进行文件操作,fopen()函数返回FILE指针。在操作系统层面,文件操作对应文件描述符(Linux)或句柄(Windows)。每个进程有一个私有的打开文件列表,fd作为下标指向内核的文件对象。FILE结构与fd之间存在一一对应关系,允许用户通过系统函数安全地操作文件。
摘要由CSDN通过智能技术生成

对于计算机来说,I/O代表了计算机与外界的交互,交互的对象可以是人或其他设备.而对于程序来说,I/O涵盖的范围更广.一个程序的I/O指代了程序与外界的交互,包括文件,管道,网络,命令行.I/O指代任何操作系统理解为文件的事务.许多操作系统都将各种具有输入和输出该鸟的实体—包括设备,磁盘文件,命令行等统称为文件.

C语言文件操作通过一个FILE结构的指针来进行.fopen()函数返回一个FILE结构指针.在操作系统层面上,文件操作也由一个类似于FILE的概念.在Linux里,这叫做文件描述符(file description) ,在windows里,叫做句柄(handle).用户通过某个函数打开文件获得句柄.设计句柄的原因在于句柄可以防止用户随意读写操作系统内核的文件对象,文件句柄总是和内核的文件对象相关联的.但如何关联细节用户并不可’.内核可以通过句柄来计算出内核里文件对象的地址. 在内核中,每一个进程都有一个私有的打开文件列表,这个列表事业个指针数组,每一个元素都指向一个内核的打开文件对象.而fd就是这个下标.当用户打开一个文件时,内核会在内部生成一个打开的文件对象,并在这个表里找到一个空的项,让这一项指向一个打开的文件对象,并返回这一项的下标做为fd.由于这个表处于内核,并且用户无法访问到,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值