在 C/C++ 编程中,错误信息的捕获和处理是保证程序健壮性的重要部分。错误通常通过函数的返回值或者全局变量 errno 来表示。为了方便调试和错误处理,C/C++ 提供了多种函数和方法来获取和输出错误信息。以下是 C/C++ 错误处理的常见方法及函数介绍:
1. errno 和 perror()
- errno:
errno是一个全局变量,当系统调用或库函数失败时,它会被设置为一个错误代码。errno是由操作系统在发生错误时设置的,每个错误代码代表特定类型的错误。 - perror():
perror()用于打印基于errno错误码的错误信息。它将errno的值转换为对应的错误消息并输出。如果提供了自定义的前缀字符串,则会一起输出。
示例:
#include <stdio.h>
#include <errno.h>
#include <string.h>
int main() {
FILE *file = fopen("non_existent_file.txt", "r");
if (!file) {
perror("File opening failed");
}
return 0;
}
输出:
File opening failed: No such file or directory
在此例中,perror() 输出了一个由 errno 设置的错误信息,具体是'没有这样的文件或目录'。
2. strerror()
- strerror():
strerror()函数用于将errno错误代码转换为可读的字符串,返回与errno对应的错误消息的指针。可以在程序中直接调用它来获取详细的错误描述。
示例:
#include <stdio.h>
#
{
FILE *file = (, );
(!file) {
(, (errno));
}
;
}


