-
直接转换出错处理方法:从数据流图到模块结构图
资源介绍
1.7 出错处理
当U N I X函数出错时,往常返回一个负值,而且整型变量e r r n o通常设置为具有特定信息的一
个值。例如,o p e n函数如成功执行则返回一个非负文件描述符,如出错则返回-1。在o p e n出错
时,有大约1 5种不同的e r r n o值(文件不存在,许可权问题等 )。某些函数并不返回负值而是使用
另一种约定。例如,返回一个指向对象的指针的大多数函数,在出错时,将返回一个null指针。
文件< e r r n o . h >中定义了变量e r r n o以及可以赋与它的各种常数。这些常数都以E开头,另外,
U N I X手册第 2部分的第 1页, intro(2) 列出了所有这些出错常数。例如,若 e r r n o等于常数
E A C C E S,这表示产生了权限问题 (例如,没有打开所要求文件的权限 )。P O S I X定义e r r n o为:
extern int errno;
P O S I X . 1中e r r n o的定义较C标准中的定义更为苛刻。C标准允许e r r n o是一个宏,
它扩充成可修改的整型左值 (lvalue) (例如返回一个指向出错数的指针的函数 )。
对于e r r n o应当知道两条规则。第一条规则是:如果没有出错,则其值不会被一个例程清除。
因此,仅当函数的返回值指明出错时,才检验其值。第二条是:任一函数都不会将 e r r n o值设
置为0,在< e r r n o . h >中定义的所有常数都不为0。
C标准定义了两个函数,它们帮助打印出错信息。
#include
char *strerror(int e rr n u m) ;
返回:指向消息字符串的指针
此函数将e rr n u m(它通常就是e r r n o值) 映射为一个出错信息字符串,并且返回此字符串的指针。
1 0 U N I X环境高级编程
- 上一篇: 操作系统原理PPT
- 下一篇: 操作系统原理-蒲晓蓉