strerror函数介绍

本文介绍了C语言中用于处理错误码的strerror函数,该函数将错误码转化为错误信息字符串并返回其地址。同时,文章提到了perror函数,它不仅能转换错误码,还能直接打印错误信息,简化了错误处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

认识strerror

库函数调用失败的时候会产生错误码,而每一个错误码对应着一条错误信息,strerror函数的作用就是将错误码给转化成错误信息。
在C语言中有一条全局的错误码errno,在程序运行过程中,只要库函数调用失败,我们就会把此处产生的错误码放入变量errno中。
返回值和参数:char * strerror ( int errnum );该函数的参数就是一个错误码,输入该错误码后,经函数内部处理,将该错误码转化成一条错误信息(类型是字符串)并将该错误信息(字符串)的地址返回。

示例

#include<stdio.h>
#include<string.h>
#include<errno.h>
int main()
{
	FILE* pf = fopen("unexist.ent", "r");
	if (pf == NULL)
	{
		printf("%s\n", strerror(errno));
		return 1;
	}
	fclose(pf);
	pf = NULL;
	return 0;
}

该代码中,FILE是一种代表“文件”的数据类型,fopen是一个功能为打开文件/文件夹的函数,参数是由文件夹名所构成的字符串(的地址),还有打开的方式对应字符串。如果找不到对应的文件夹,则返回空指针。
该代码的结果是
在这里插入图片描述
值得注意的是,因为该函数仅仅是将错误码转化成错误信息,但却只返回错误信息地址而并没有将他打印出来,所以我们需要再借用printf函数将它打印出来。
那有没有不需要借用printf直接一步到位的函数呢?
答案是有的,他就是perror函数。

perror函数介绍

该函数集转换和打印功能于一身,它会自动读取之前产生的错误码,将其转换成错误信息并且将它打印出来。
示例如下:

int main()
{
	FILE* pf = fopen("unexist.ent", "r");
	if (pf == NULL)
	{
		printf("%s\n", strerror(errno));
		perror("我要上北大");
		return 1;
	}
	fclose(pf);
	pf = NULL;
	return 0;
}

在这里插入图片描述
结合图片和代码可以看出,perror函数无需输入就可以读取错误码并完成其转换和打印工作,并且在perror函数后的小括号中插入一个字符串,该字符串会同步得传到打印的错误信息的前面(中间隔了一个“:”和“ ”(空格))。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值