`
lovecontry
  • 浏览: 1033591 次
文章分类
社区版块
存档分类
最新评论

[技术学习]APUE中readn/writen与CSAPP中rio_readn/rio_writen的比较

 
阅读更多

APUE14.8节有如下的讲述:

管道、FIFO以及某些设备,特别是终端、网络和STREAMS设备有下列两种性质:

1> 一次read操作所返回的数据可能少于所要求的数据,即使还没达到文件尾端也可能是这样。这不是一个错误,应当继续读该设备。

2> 一次write操作的返回值也可能少于指定输出的字节数。这可能是由若干因素造成的,例如,下游模块的流量控制限制。这也是不是错误,应当继续写余下的数据至设备。

在读写磁盘文件时从未见到过这种情况,除非是文件系统用完了空间,或者我们接近了配额限制,而不能将要求写的数据全部写出。

作者接下来分别实现了readn与writen函数,首先看看readn函数:

明天待续!

2011/01/16 补记: 这篇博客一直没续上,而今天我又遇到类似的问题,居然在Google找到自己的博客上了。有时间再把CSAPP的代码贴上分析一下。

分享到:
评论

相关推荐

    apue.h 《UNIX环境高级编程》 头文件

    相信很多初学《UNIX环境高级编程》的朋友都会遇到一个问题,运行里面的实例时就出现问题,提示 "错误:apue.h:没有那个文件或目录". apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。...

    基于linux学习apue

    非常适合学习ARM开发的人员,能够精确的学习快速提高apue知识

    unix编程环境(学习apue的基础)

    详细介绍了unix环境的基本操作,是学习apue的基础

    apue中文.pdf

    apue的中文版,内容清晰,LINUX编程不可不看的好书!

    UNIX系统中apue.h

    初学《UNIX环境高级编程》的朋友都会遇到一个问题,运行里面的实例(download: http://www.apuebook.com/)时就出现问题,提示 "错误:apue.h:没有那个文件或目录".

    Unix环境高级编程(APUE)中的头文件apue.h

    Unix环境高级编程(APUE)中的头文件apue.h

    APUE中文第二版.zip

    APUE中文第二版.zip Unix 环境高级编程

    apue中文第三版

    apue第三版, 资源分数好像最低只能设为1,

    apue.rar_apue_apue pudn

    apue第二版每一章节的c语言源码,很不错的学习

    APUE.zip_apue

    APUE的测试代码,每一章节都有,包括所有重要的例子,学习APUE的时候编写

    apue 代码

    apue

    APUE3+代码+APUE2(中文)

    APUE3+代码+APUE2(中文).经典中的经典。我就不做过多介绍了

    APUE中文第二版UNIX.rar

    本书[APUE中文UNIXpdf完整版]全面介绍了UNIX系统的程序设计界面—系统调用界面和标准C库提供的许多函数。 本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进 程控制、进程间通信以及...

    apue中文

    本章从程序设计人员的角度快速浏览 U N I X,并对书中引用的一些术语和概念进行简要的说明并给出实例。在以后各章中,将对这些概念作更详细的说明。本章也对不熟悉U N I X的程序设计人员简要介绍了U N I X提供的各种...

    APUE Unix高级编程 中文第三版

    APUE的中文第三版,将就着看

    UNIX环境高级编程apue_中文高清.pdf

    Unix C编程经典参考书籍,分章节,理解更准确。

    APUE(UNIX环境高级编程)——文件I/O篇

    本章开始讨论UNIX系统,先说明可用的文件I/O函数——打开文件、读文件、写文件等等。 大多数UNIX文件I/O只需用到5个函数: open ...本章所说明的函数经常被称之为不带缓存的I/O(与标准I/O 函数相对照

    APUE中需要的myerr.h

    APUE中需要的myerr.h 解决undefined reference to `err_quit' undefined reference to `err_sys'

Global site tag (gtag.js) - Google Analytics