strerror——返回错误码对应的错误信息
把错误码翻译成错误信息
头文件 # include <errno.h>
# include <string.h>
char * strerror ( int errnum );
char * strerror ( 会告诉你一个错误的信息 );
注意:
- errum是描述错误情况的信息的字符串,与库函数设置为errno类似
- 这个返回的指针指向一个静态的已分配的且不能被程序修改的字符串,进一步调用此函数可能会覆盖内容(不需要特定的库的实施,避免数据竞争)
多使用strsrror查bug
#include<string.h>
#include <errno.h>
int main()
{
//fopen函数根据指定的文件名和模式打开文件,成功时返回文件指针,失败时返回 NULL。
//fopen(文件名+"r" 只读、"w" 写入、"a" 追加等)
FILE* pf = fopen("test.txt", "r");
if (pf == NULL)
{
printf("%s\n", strerror(errno));
return 1;
}
// 若文件成功打开,这里可以添加对文件的操作代码
// 关闭文件
fclose(pf);
return 0;
}
输出:
No such file or directory
perror——返回错误码对应的错误信息更简单
直接打印错误信息,在打印错误信息前会先打印自定义信息
相当于perror = printf + strerror
头文件 # include <errno.h>
# include <string.h>
- 调用
perror()
函数并传入相应的错误提示信息。 perror()
函数将根据 fopen 的值输出相应的错误消息。
#include<string.h>
#include <errno.h>
int main()
{
//fopen函数根据指定的文件名和模式打开文件,成功时返回文件指针,失败时返回 NULL。
//fopen(文件名+"r" 只读、"w" 写入、"a" 追加等)
FILE* pf = fopen("test.txt", "r");
if (pf == NULL)
{
perror(fopen);
return 1;
}
// 若文件成功打开,这里可以添加对文件的操作代码
// 关闭文件
fclose(pf);
return 0;
}
输出:
fopen:No such file or directory