第十五章 输入输出函数
1. ANSI编译器并未被禁止在它们的库函数的基础上增加其他函数,但是标准函数必须根据标准所定义的方式执行。如果你关心可移植性,只要避免使用任何非标准函数就行了。
2.perror函数以一种简单、统一的方式报告错误。
原型 void perror(char const* message);
如果message不是NULL并且指向一个非空的字符串,perror函数就打印出这个字符串,后面跟一个分号和空格,然后打印出一条用于解释erron当前错误代码的信息。
3.原型 void exit(int status);
预定义符号EXIT_SUCCESS与EXIT_FAILURE分别提示程序的终止的成功还是失败;exit 函数中的参数和main中的参数状态是一致的,用于提示程序是否正常完成,这个函数没有返回值,当exit结束时,程序已经消失,所以他无返回值而言。
4. 这个函数库存在两个缺点:1。它在某种特定的类型的机器上实现的,并没有对其他不同特性的机器多作考虑。2.设计这发现上述问题后,试图去修正,但是只要他们这么作了这个函数库就不标准了,程序的可移植性就会降低。
5. 使用标准 输入输出时,这种缓存坑引起混淆,只有当他们与交互设备并无联系时,才会进行完全缓存。
6.标准I/O函数库中的函数,是对原来的函数进行诸多完善之后的结果,但是它们仍然可能进一步改进,使它们变得更完美。ANSI C的一个主要优点就是这些修改将通过增加不同函数的方法实现,而不是通过对现存函数进行修改来实现。因此,程序的可移植性不会受到影响。
7. I/O函数以三种基本的形式处理数据:单个字符、文本行和二进制数据;