- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - perror() 函数
C 库的 perror() 函数旨在将描述性错误消息打印到标准错误流 (stderr),这有助于调试和理解程序中出现的问题。
语法
以下是 C 库 perror() 函数的语法:
void perror(const char *str);
参数
此函数只接受一个参数:
- str: 指向一个空终止字符串的指针,该字符串将在错误消息之前打印。如果此字符串不为 NULL 且不为空,则其后将跟一个冒号和一个空格 (: )。此字符串通常表示错误发生时的上下文或函数。
返回值
perror() 不返回值。它是一个 void 函数。其主要目的是将错误消息打印到 stderr。
示例 1:打开一个不存在的文件
此示例尝试打开一个不存在的文件。fopen() 设置 errno 以指示错误,而 perror() 打印有关失败的描述性消息。
以下是 C 库 perror() 函数的示例。
#include <stdio.h> #include <errno.h> int main() { FILE *file = fopen("non_existent_file.txt", "r"); if (file == NULL) { perror("Error opening file"); } else { fclose(file); } return 0; }
输出
以上代码产生以下结果:
Error opening file: No such file or directory
示例 2:在不可写目录中创建文件
此示例尝试在用户没有写权限的目录中创建文件。fopen() 失败,将 errno 设置为 EACCES,而 perror() 打印相应的错误消息。
#include <stdio.h> #include <errno.h> int main() { FILE *file = fopen("/non_writable_directory/new_file.txt", "w"); if (file == NULL) { perror("Error creating file"); } else { fclose(file); } return 0; }
输出
执行以上代码后,我们将得到以下结果:
Error creating file: Permission denied
广告