strerror
和perror
是C语言中用于处理错误信息的函数。
-
strerror
函数:
``strerror`函数用于将错误码转换为对应的错误消息字符串。它接受一个整数参数,通常是由系统调用或库函数返回的错误码,然后返回一个描述该错误的字符串。函数原型:
char *strerror(int errnum); ```**参数:** - `errnum`:一个整数,表示错误码。**返回值:** - 如果错误码有效,则返回一个指向错误消息字符串的指针。 - 如果错误码无效或无法确定错误消息,则返回一个指向描述未知错误的字符串的指针。**示例用法:** ````c #include <stdio.h> #include <string.h> #include <errno.h>int main() {FILE *file = fopen("nonexistentfile.txt", "r");if (file == NULL) {printf("Failed to open file: %s\n", strerror(errno));}return 0; } ```在上述示例中,`fopen`函数尝试打开一个不存在的文件,返回了一个错误码,然后使用`strerror(errno)`将错误码转换为对应的错误消息字符串,并打印出来。
-
perror
函数:
``perror函数用于打印与当前错误码对应的错误消息字符串,通常与
errno`全局变量一起使用。它会将错误消息字符串与自定义的错误描述一起输出到标准错误输出(stderr)。函数原型:
void perror(const char *s); ```**参数:** - `s`:一个字符串,用于自定义错误描述。**返回值:** 无。**示例用法:** ````c #include <stdio.h> #include <string.h> #include <errno.h>int main() {FILE *file = fopen("nonexistentfile.txt", "r");if (file == NULL) {perror("Failed to open file");}return 0; } ```在上述示例中,`fopen`函数尝试打开一个不存在的文件,返回了一个错误码,然后使用`perror`函数打印错误消息字符串,并附带自定义的错误描述。``perror`函数会在输出错误消息字符串之前自动添加自定义描述和冒号,格式为:`<自定义描述>: <错误消息>`。
这些函数提供了一种方便的方式来处理和显示错误消息,有助于诊断和调试程序中的错误情况。