zzpdljd 2012-06-03
一.错误报告
1.perror()函数是一种简单、统一的方式报告错误。ansi c 函数库的许多函数调用操作系统来完成某些任务,I/O函数尤其如此。任何时候,当操作系统根据要求执行一些任何的时候,都存在失败的可能。标准库函数在一个外部整型变量errno(在errno.h中定义)中保存错误代码之后把这个信息传递给用户程序,提示操作失败的准确原因。
2.perror()函数的原型:
#include<stdio.h>
void perror(charconst *message);
如果message不是NULL并且指向一个非空的字符串,perror函数就打印出这个字符串,后面跟一个分号和一个空格,然后打印出一条用于解释errno当前错误代码的信息。
3.perrno函数的最大优点是容易使用。良好的编程实践要求任何可能产生错误的操作读应该在执行之后进行检查,确定它是否成功执行。
说明:
只有当一个库函数失败时,errno才会被设置。当函数成功执行时,errno的值不会被需改。因此,不能通过测试errno的值来判断是否有错误发生。所以只有当被调用的函数提示有错误发生时检查errno的值才有意义。
二.终止执行
1.终止执行的函数是exit,它用于终止一个程序的执行。
2.它的原型为:
#include<stdlib.h>
void exit(intstatus);
3.status参数返回给操作系统,用于提示程序是否正常完成。
这个值和main()函数返回的整型状态值相同。预定义符号EXIT_SUCCESS和EXIT__FAILURE分别提示程序的终止是成功还是失败。
4.当程序发现错误情况使它无法继续执行下去时,可以使用该函数。我们经常会在调用perrno之后再调用exit终止程序
5.该函数没有返回值。当exit函数结束之后,程序已经消失。
三.文本流
1.流分为两种类型,文本(text)流和二进制流(binary)流。
2.文本流的有些特性在不同的系统中可能不同。其中之一就是文本的行的最大长度。 标准规定至少允许254个字符。另一个可能不同的特性是文本行的结束方式。
1>在MS-DOS系统中,文本行预定以一个回车符和一个换行符结尾。
2>在UNIX系统中只使用一个换行符结尾。
3.标准文本行定义为零个或多个字符,后面跟一个表示结束的换行符。