第10章 系统级I/O(下)

10.7  I/O重定向

Unix外壳提供了I/O重定向操作符,允许用户将磁盘文件和标准输出输入联系起来。

例如:unix>ls>foo.txt,使得外壳加载和执行ls程序,将标准输出重定向到磁盘文件foo.txt。

另一种方式是使用dup2函数。

 

 

10.8 标准I/O

ANSI C定义了一组高级输入输出函数,称为标准I/O,为程序员提供了Unix I/O的较高级别的替代。这个库(libc)提供了打开和关闭文件的函数(fopen和fclose)、读和写字节的函数(fread和fwrite)、读和写字符串的函数(fgets和fputs),以及复杂的格式化的I/O函数(scanf和printf)。

   标准I/O库将一个打开的文件模型化为一个。每个ANSI C程序开始时都有三个打开的流stdin、stdout和stderr,分别对应于标准输入、标准输出和标准错误:

 

类型为FILE的流是对文件描述符和流缓冲区的抽象。

 

 

附录A

A.1 Unix系统中的错误处理

本附录给出了一个关于Unix系统中不同种类的错误处理的教程,还给出了不同风格的错误处理包装函数示例。

   本书中我们遇到的系统级函数的调用使用三种不同风格的返回错误:Unix风格的、Posix风格的和DNS风格的。

  1. Unix风格的错误处理

 

     2.Posix风格的错误处理

只用返回值来表明成功(0)或者失败(非0)。任何有用的结果都返回在通过引用传递进来的函数参数中。

 

    3.DNS风格的错误处理

 

 

A.2 错误处理包装函数

1.Unix风格的错误处理包装函数

 

2. Posix风格的错误处理包装函数

 

3. DNS风格的错误处理包装函数

 

posted on 2015-11-15 09:31  20135232  阅读(140)  评论(0)    收藏  举报