出错处理-hds ams 2500用户手册
1.7 出错处理
当 UNIX 函数出错时,通常会返回一个负值,而且整型变量 errno 会被设置为一个具有特定信息的值。open 函数如果成功执行,则返回一个非负文件描述符,如果出错则返回 -1。出错时,有大约 15 种不同的 errno 值,例如文件不存在、权限问题等。
有些函数并不返回负值,而是使用另一种约定。大多数返回指向对象的指针的函数在出错时将返回一个 null 指针。文件
若 errno 等于常数 EACCES,这表示产生了权限问题(没有打开所要求文件的权限)。POSIX 定义 errno 为:
extern int errno;
POSIX.1 中 errno 的定义比 C 标准中的定义更为严格。C 标准允许 errno 是一个宏,它扩展成可修改的整型左值 (lvalue)(返回一个指向出错数的指针的函数)。对于 errno,应该知道两条规则:如果没有出错,则其值不会被一个例程清除。因此,仅当函数的返回值指明出错时,才检验其值。其次,任何函数都不会将 errno 值设置为 0,在
C 标准定义了两个帮助打印出错信息的函数:
#include <string.h>
char *strerror(int errnum);
string.h>
返回:指向消息字符串的指针
此函数将 errnum(它通常就是 errno 值)映射为一个出错信息字符串,并返回此字符串的指针。
如果你对出错处理感兴趣,可以参考以下资源:
用户评论