c 语言的 errno 是什么, 怎么用?
时间: 2024-09-11 22:04:33 浏览: 40
在C语言中,`errno` 是一个全局变量,用来标识最近一次系统调用或者库函数调用中出现的错误。当发生错误时,相关的库函数会设置 `errno` 的值以指示错误类型。这个变量通常在 `<errno.h>` 头文件中定义,并且通常是一个整型。
使用 `errno` 的典型步骤如下:
1. 在调用可能会失败的函数之前,检查 `errno` 的当前值,以确认上一个操作没有设置它。
2. 调用可能失败的函数。
3. 检查函数的返回值,确定是否发生了错误。
4. 如果发生了错误,检查 `errno` 的值来确定具体错误类型,并据此处理错误。
下面是一个简单的例子:
```c
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main() {
FILE *fp;
// 打开文件
fp = fopen("nonexistentfile.txt", "r");
if (fp == NULL) {
// 错误处理
perror("fopen");
// 输出errno的值和含义
fprintf(stderr, "errno: %d, %s\n", errno, strerror(errno));
} else {
fclose(fp);
}
return 0;
}
```
在这个例子中,如果文件不存在,`fopen()` 将返回 `NULL`,并且 `errno` 会被设置为一个错误代码(例如 `ENOENT`,表示文件不存在)。`perror()` 函数会打印出一个描述错误的字符串,而 `strerror(errno)` 函数会返回一个描述当前 `errno` 值的字符串。
阅读全文