perror ()- 打印错误消息
格式
#include <stdio.h>
void perror(const char *string);语言级别
ANSI
线程安全
是
描述
perror() 函数将错误消息打印到 stderr。 如果 string 不是 NULL ,并且未指向空字符,那么 string 所指向的字符串将打印到标准错误流,后跟冒号和空格。 然后打印与 errno 中的值相关联的消息,后跟换行符。
要生成准确的结果,应确保在库函数返回错误后立即调用 perror() 函数; 否则,后续调用可能会更改 errno 值。
返回值
没有返回值。
errno 的值可以设置为:
- 值
- 含义
- EBADDATA
- 消息数据无效。
- EBUSY
- 记录或文件正在使用中。
- ENOENT
- 找不到文件或库。
- EPERM
- 权限不足,无法访问。
- ENOREC
- 找不到记录。
- EIOERROR
- 发生了不可恢复的I/O错误。
- EIORECERR
- 发生了可恢复的I/O错误。
示例
此示例尝试打开流。 如果
fopen() 失败,那么示例将打印一条消息并结束程序。#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fh;
if ((fh = fopen("mylib/myfile","r")) == NULL)
{
perror("Could not open data file");
abort();
}
}