1. 首页
  2. 考试认证
  3. 其它
  4. 出错处理-hds ams 2500用户手册

出错处理-hds ams 2500用户手册

上传者: 2024-07-22 19:35:17上传 PDF文件 17.98MB 热度 3次

1.7 出错处理

当 UNIX 函数出错时,通常会返回一个负值,而且整型变量 errno 会被设置为一个具有特定信息的值。open 函数如果成功执行,则返回一个非负文件描述符,如果出错则返回 -1。出错时,有大约 15 种不同的 errno 值,例如文件不存在、权限问题等。

有些函数并不返回负值,而是使用另一种约定。大多数返回指向对象的指针的函数在出错时将返回一个 null 指针。文件 中定义了变量 errno 以及可以赋予它的各种常数。这些常数都以 E 开头,UNIX 手册的第 2 部分第 1 页 intro(2) 列出了所有这些出错常数。

若 errno 等于常数 EACCES,这表示产生了权限问题(没有打开所要求文件的权限)。POSIX 定义 errno 为:


extern int errno;

POSIX.1 中 errno 的定义比 C 标准中的定义更为严格。C 标准允许 errno 是一个宏,它扩展成可修改的整型左值 (lvalue)(返回一个指向出错数的指针的函数)。对于 errno,应该知道两条规则:如果没有出错,则其值不会被一个例程清除。因此,仅当函数的返回值指明出错时,才检验其值。其次,任何函数都不会将 errno 值设置为 0,在 中定义的所有常数都不为 0。

C 标准定义了两个帮助打印出错信息的函数:


#include <string.h>

char *strerror(int errnum);

string.h>

返回:指向消息字符串的指针

此函数将 errnum(它通常就是 errno 值)映射为一个出错信息字符串,并返回此字符串的指针。

如果你对出错处理感兴趣,可以参考以下资源:

用户评论