第三章 文件I/O

3.1 引言

本章描述的函数被成为不带缓冲的IO,指的是每个read、write都调用内核中的一个系统调用;

3.2 文件描述符

  1. 非负整数
  2. shell中 文件描述符0标准输入,1标准输出,2标准错误

3.3 open.openat

  1. 这两个函数返回的一定是最小的且未使用的文件描述符
  2. 当前大多数系统支持最长文件名为255字节

3.4 create

该函数可以用open替代

3.5 close

  1. 当一个进程终止时,内核自动关闭该进程打开的所有文件
  2. 关闭一个文件时,同时释放该进程加在文件上的所有记录锁(不清楚记录锁是什么,14章有讲解)

3.6 lseek

  1. 显示的为一个打开的文件设置偏移量,除非指定O_APPEND选项,否则该偏移量设置为0
  2. lseek设置偏移量可以大于文件当前长度,此时写文件会造成文件‘空洞’,由0填充,需要说明的是‘空洞’一般不占用磁盘空间(依赖文件系统具体实现)

3.7 read

  1. 读到文件结尾返回0,否则返回读到的字节数,小于等于指定的字节数
  2. 每次最多读SSIZE_MAX字节数

3.8 write

3.9 I/O的效率


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值