以下是 <errno.h> 中一些常见的宏和全局变量:
errno 全局变量
#include <errno.h>
extern int errno;
errno 是一个全局变量,用于存储最近一次发生的错误代码。在标准库函数调用失败时,可以检查 errno 的值以确定错误的原因。
perror 函数
#include <stdio.h>
void perror(const char *s);
perror 函数用于将最近一次发生的错误信息输出到标准错误流,并在错误信息前加上用户提供的字符串 s。
strerror 函数
#include <string.h>
char *strerror(int errnum);
strerror 函数将错误代码 errnum 转换为相应的错误消息字符串,并返回这个字符串的指针。
示例
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main() {
FILE *file = fopen("nonexistent_file.txt", "r");
if (file == NULL) {
perror("Error");
printf("Error code: %d\n", errno);
// 使用 strerror 获取详细的错误消息
printf("Error message: %s\n", strerror(errno));
} else {
// 处理文件操作
fclose(file);
}
return 0;
}
在上述示例中,fopen 函数尝试打开一个不存在的文件,由于文件不存在,fopen 失败,并设置了 errno 的值。perror 函数用于输出错误信息,而 strerror 函数则用于获取详细的错误消息字符串。
这些函数和 errno 变量是在处理错误时非常有用的工具,它们能够提供有关错误原因的有用信息。在实际编程中,特别是在系统级编程中,对这些机制的了解和使用是很重要的。
转载请注明出处:http://www.zyzy.cn/article/detail/13547/C 语言