在C语言中,
perror
是一个库函数,用于显示与上一个系统调用相关联的错误描述。它是用于处理和显示来自errno
变量的错误信息的。
当系统调用失败时,例如 open
, read
, write
等,errno
会被设置为一个错误码,表示发生了什么错误。使用 perror
可以为用户显示一个与该错误码相关的描述性错误消息。
perror
的原型如下:
#include <stdio.h>
void perror(const char *s);
其中,s
是一个字符串,通常用于描述在哪里或为什么发生了错误。当 perror
被调用时,它会打印参数 s
,后面跟一个冒号、一个空格和与当前 errno
值相关的错误消息。
示例:
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
int main() {
FILE *fp;
fp = fopen("non_existent_file.txt", "r");
if (fp == NULL) {
perror("Error opening file");
exit(EXIT_FAILURE);
}
// ...其他代码...
fclose(fp);
return 0;
}
如果文件 "non_existent_file.txt" 不存在,上述代码会输出类似以下的错误消息:
Error opening file: No such file or directory
这里的 "Error opening file" 是我们提供给 perror
的描述,而 "No such file or directory" 是与 errno
值相关的系统错误消息。