Linux文件I/O----APUE-chapter03练习题答案

本文探讨了Linux文件I/O的缓冲机制,解释了read和write函数在磁盘操作中的缓冲行为,如预读和延迟写。同时,提供了一个与APUE 3.12节dup2函数功能相同但不依赖fcntl的实现,旨在确保正确处理错误情况。
摘要由CSDN通过智能技术生成

因为这是我自己写的肯定会有不足甚至可能错误的地方,如有请各位阅读者指正,可以的话请您直接在博客下面留言,我方便改正.

3.1

当读/写磁盘文件时,本章中描述的函数确实是不带缓冲机制的吗?请说明原因。

实际是带有缓冲机制的,
1. 如read的时候,大多数的文件系统为改变性能都采用某种预读(read ahead)技术,
当检测到正在进行顺序读取时,系统就试图读入比应用所要求的更多数据.
2. 通常write只是将数据排入队列,而实际的写磁盘操作则可能在以后的某个时刻进行。
而数据库系统则需要使用O_SYNC,这样一来当它从write返回时就知道数据已确实写到磁盘上,
以免在系统异常是产生数据丢失

3.2

编写一个与3.12节中dup2功能相同的函数,要求不调用fcntl函数,并且要有正确的出错处理


/*
* 编写一个与3.12节中dup2功能相同的函数,要求不调用fcntl函数,并且要有正确的出错处理
* If oldfd is not a valid file descriptor, then the call fails, 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值