【C语言】寻找错误信息用strerror或perror函数(最最最好懂)

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>

  1. 调用 perror() 函数并传入相应的错误提示信息。
  2. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值