strerror介绍
strerror是一个C库函数,用于将错误代码转换为对的错误信息字符串。它接受一个整数参数errno,返回一个指向错误信息字符串的指针。
errno是一个全局变量,可以直接使用。它在C语言中用于表示发生错误时的错误码。它是一个整数,通常被定义为指向一个 extern int
类型的宏。当函数或系统调用发生错误时,它会被设置为相应的错误码,以便程序可以根据错误码进行适当的错误处理。
errno错误码
`errno` 是一个全局变量,在C语言中用来表示发生的错误。它的取值是一个整数,各个操作系统和编译器可能有不同的取值范围和含义。下面是一些常见的 `errno` 错误码取值及其含义:
1. 2(ENOENT):表示文件或目录不存在。
2. 13(EACCES):表示权限不足,无法访问文件或目录。
3. 9(EBADF):表示无效的文件描述符。
4. 11(EAGAIN):表示资源临时不可用。
5. 22(EINVAL):表示无效的参数。
6. 12(ENOMEM):表示内存不足。
7. 5(EIO):表示输入输出错误。
8. 20(ENOTDIR):表示路径名不是一个目录。
9. 17(EEXIST):表示文件或目录已存在。
10. 28(ENOSPC):表示没有足够的空间。
例子
以下是strerror函数的示例用法:
#include <stdio.h> #include <string.h> #include <errno.h> int main() { FILE *file = fopen("nonexistent_file.txt", "r"); if (file == NULL) { int error_code = errno; const char *error_message = strerror(error_code); printf("Error: %s\n", error_message); } return 0; }
输出为: Error: No such file or directory