系统级I/O

本文探讨了标准I/O与系统I/O的区别及其在编程中的应用,并深入解析了内核如何通过文件描述表、文件表及v-node表来管理共享文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所有的语言运行的时候都执行I/O的较高级别的工具,标准I/O。高级别i/o比较方便,带有缓冲区,系统i/o不带缓冲区,操作不方便。高级i/o是被称为标准i/o,是对系统i/o的封装。

系统i/o对网络编程很重要,标准i/o不可以用,有缺陷。标准i/o提供的功能不够全面,比如无法得到文件的大小和创建时间。

提供了打开,读写,关闭文件。

共享文件:

内核用三个相关的数据结构表示打开的文件:

1.文件描述表:每个进程都有自己的独立描述符表,它的表项是由进程打开的文件描述符来索引的。每个代开的描述符表项指向文件表的一个表项。

描述符表fd0,fd1......然后依次增大,0,1,2分别是,stdin,stdout,stderr,分别是键盘,显示器。

2.文件表:打开文件的集合是由一张文件表来表示的,所有的进程共享这张表。每个文件表的表项组成包括当前的文件位置,引用计数,以及指向v-node表中对应表现的指针。

3.v-node表。同文件表一样,所有的进程共享这种v-node表,每个表项包含stat结构中的大多数信息,包括st_mode和st_size成员。



这是共享的


子进程继承父进程:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值