读书笔记:《深入理解计算机系统》第十章 系统级I/O

在Linux系统中,文件是一个多字节的序列。

打开文件即内核会访问一个描述符,用来在后续操作中标识这个文件。内核记录这个文件的所有信息,而应用程序只需要记住这个标识符。

读文件则是从文件中复制n个字节到内存中,而写操作就是从内存中复制n个字节到文件。

关闭文件则会将描述符恢复到可用的描述符池中。

 

文件常见的类型有普通文件(文本文件和二进制文件),目录,套接字等。

父子进程共享相同的打开文件表集合,因此共享相同的文件位置.一个很重要的结果就是.在删除相应文件表表项之前,父子进程必须都关闭了它们的描述符.

 

谈到文件就必然谈到输入和输出函数

I/O函数有三种,分别为标准I/O函数,RIO函数,Unix I/O函数。

Unix I/O函数是在操作系统内核中实现的。

RIO函数和标准I/O函数都是基于Unix I/O函数实现的。

 

那什么情况下使用这三种函数呢?

对于大多数程序,标准I/O函数更简单,是优于Unix I/O的选择,然而,因为标准I/O和网络文件的一些互相不兼容的限制,Unix I/O比之标准I/O更适用于网络应用程序。

对于网络套接字的I/O适用RIO函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值