(持续更新中!!~)16、原来可以这样理解C语言_字符函数和字符串函数(12/12)strerror 函数的使⽤

目录

 12. strerror 函数的使⽤


 12. strerror 函数的使⽤

1 char * strerror ( int errnum );

        strerror 函数可以把参数部分错误码对应的错误信息的字符串地址返回来。 在不同的系统和C语⾔标准库的实现中都规定了⼀些错误码,⼀般是放在 errno.h 这个头⽂件中说明 的,C语⾔程序启动的时候就会使⽤⼀个全局的变量errno来记录程序的当前错误码,只不过程序启动 的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会将对应 的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是 有对应的错误信息的。

        strerror函数就可以将错误对应的错误信息字符串的地址返回。

#include <errno.h>

#include <string.h>

#include <stdio.h>

//我们打印⼀下0~10这些错误码对应的信息 
int main()
{
 int i = 0;
 for (i = 0; i <= 10; i++) {
 printf("%s\n", strerror(i));
 }
 return 0;
}

Windows11+VS2022环境下输出的结果如下:

No error

Operation not permitted

No such file or directory

No such process

Interrupted function call

Input/output error

No such device or address

Arg list too long

Exec format error

Bad file descriptor

No child processes

举例:

#include <stdio.h>

#include <string.h>

#include <errno.h>

int main ()
{
 FILE * pFile;
 pFile = fopen ("unexist.ent","r");
 if (pFile == NULL)
 printf ("Error opening file unexist.ent: %s\n", strerror(errno));
 return 0;
}

输出

Error opening file unexist.ent: No such file or directory

        也可以了解⼀下perror函数,perror函数相当于⼀次将上述代码中的第9⾏完成了,直接将错误信息 打印出来。perror函数打印完参数部分的字符串后,再打印⼀个冒号和⼀个空格,再打印错误信息。

#include <stdio.h>

#include <string.h>

#include <errno.h>

int main ()
{
 FILE * pFile;
 pFile = fopen ("unexist.ent","r");
 if (pFile == NULL)
 perror("Error opening file unexist.ent");
 return 0;
}

输出:

1 Error opening file unexist.ent: No such file or directory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值