C错误处理

本文为个人学习笔记,仅用于个人学习、复习使用!

    c语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值得形式允许您访问底层数据,在发生错误时,大多数的c或Unix函数调用返回1或NULL,同时会设置一个错误代码errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在errno.h头文件中找到各种各样的错误代码。

    所以c程序员可以通过检查返回值,然后根据返回值决定采取哪种适当的动作。开发人员应该在程序初始化时,把errno设置为0,这是一种良好的编程习惯。0表示程序中没有错误。
1、可通过errno确定错误的类
    c语言提供了perror()和strerror()函数来显示与error相关的文本信息。
    perror()函数显示您传给他的字符串,后面跟一个冒号、一个空格、和当前error值得文本表示形式。
    strerror()函数,返回一个指针,指针指向当前error值得文本表示形式。
   我们要使用stderr文件流来输出所有的错误。

#include<stdio.h>
#include<errno.h>
#include<string.h>

extern int errno;

int main(){
	FILE *pf;
	int errnum;
	pf=fopen("unexist.txt","rb");
	if(pf==NULL){
		errnum=errno;
		fprintf(stderr,"错误号:%d\n",errno);
		perror("通过perror输出错误");
		fprintf(stderr,"打开文件错误:%s\n",strerror(errnum));
	}
	else{
		fclose(pf);
	}
	return 0;
}
2、可以通过perror()函数和strerror()函数来输出错误号所指向的错误类型,应通过stderr文件流输出错误信息
输出结果为:
错误号: 2
通过perror输出错误:No such file or directory
打开文件错误:No such file or directory
fprintf()函数原型:int fprintf(FILE *fp,const char *format,...),作用是将一个字符串写入文件中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值