C语言获取系统错误

本文介绍了C语言中如何通过errno全局变量和strerror函数获取系统错误信息。strerror函数根据errno的值返回错误描述字符串,而errno在某些库函数失败时会被设置。但并非所有函数失败都会设置errno,且成功执行的函数不会清零errno。程序员可以根据函数返回值判断错误,errno主要用于提供更详细的错误信息。
摘要由CSDN通过智能技术生成


我们在写程序的时候需要调用C语言提供的库函数,并通过函数的返回值判断调用是否成功。其实在C语言中,还有一个全局变量errno,存放了函数调用过程中产生的错误码。

为防止和正常的返回值混淆,库函数的调用一般并不直接返回错误码,而是将错误码(是一个整数值,不同的值代表不同的含义)存入一个名为errno 的全局变量中,errno 不同数值所代表的错误消息定义在 <errno.h>文件中。如果库函数调用失败,可以通过读出 errno的值来确定问题所在,推测程序出错的原因,这也是调试程序的一个重要方法。

配合 strerror和perror两个库函数,可以很方便地查看出错的详细信息。

strerror 在 <string.h> 中声明,用于获取错误码对应的消息描述。

perror 在 <stdio.h>中声明,用于在屏幕上最近一次系统错误码及其消息描述,在实际开发中,我们写的程序运行于后台,在屏幕上显示错误信息没有意义。

一、strerror函数

函数声明:

char *strerror(int errno);

函数说明:strerror()用来依参数errno的错误代码来查询其错误原因的描述字符串,然后将该字符串指针返回。

返回值:返回描述错误原因的字符串地址。

在gcc4.4.7版本中,定义了131个错误代码,我们用程序把它们全部显示出来。

示例(book158.c)

/*
 * 程序名:book158.c,此程序演示strerror函数的使用。
 * 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <string.h>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值