您的位置 首页 > 德语词汇

ioerror是什么意思、读音 有关文件IO操作的错误(error)提示

大家好,今天来为大家分享ioerror是什么意思、读音的一些知识点,和有关文件IO操作的错误(error)提示的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

1、在编程中,我们一般都是要讲究一定的使用规范的。按照一定的规范编写代码,返回运行提示,在代码运行出现问题时能方便我们能快速的定位到问题的所在。

ioerror是什么意思、读音 有关文件IO操作的错误(error)提示

2、特别是在使用库函数或者系统调用的API的时候,我们最好也要关注函数的返回值所能给我们提供的信息,充分利用好这些返回值以及返回值所代表的含义,对我们的错误查找是有很大的便利的!

3、本文记录一下文件IO操作时的一些错误提示,通过函数的调用之后的返回值去查找对应的问题。

4、在linux系统中对于常见的错误都进行了统计,这些不同的错误已经被系统进行了编号,并且每个错误类型的编号都不一样,以此来区分不同的错误类型。

5、errno实际上是一个int型的全局变量,它存储的是当前执行函数所发生的错误编号,如果这个错误在被记录时没有被及时的访问,那么会被下一次发生的错误编号所覆盖掉。

6、但是有一点是要注意的,不是所有的库函数或者系统调用都会有错误码返回的,关于这边要去查询所调用的函数说明才能知道。比如我想知道函数open是否会返回错误码,那就可以使用man2open进行查看,如下:

7、从图中可以看出,open函数在调用出现异常的时候会设置errno变量的。

8、虽然我们知道了通过errno变量可以获取到函数调用出现错误时的错误编号。但是错误编号它只是一个数字,对于我们而言光是知道一个数字总归是差点意思的。

9、而我们最终是希望通过这个数字获取到有关的错误原因或者某种提示,这才是我们查找问题的好帮手啊。

10、这个时候我们可以考虑使用一个C库函数—strerror()。通过这个函数将我们代码中获取到的错误编码转换成对应的字符串输出,让我们能够看的明白错误是怎么回事。

11、#include<string.h>\nchar*strerror(interrnum);\n\n参数和返回值如下:\nerrnum:错误编号errno。\n返回值:对应错误编号的字符串描述信息。\n

比如:我调用open函数以只读的方式打开一个不存在的文件,并打印变量errno的值,然后转换成字符串输出,看看是什么效果。

12、\n#include<sys/types.h>\n#include<sys/stat.h>\n#include<fcntl.h>\n#include<unistd.h>\n#include<stdio.h>\n#include<string.h>\n#include<errno.h>\n\n\nintmain(void)\n{\ncharbuf[1024];\nintfd_src;\n\nfd_src=open("./xxxx.txt",O_RDONLY);\nif(fd_src<0)\n{\nprintf("errno:%dInfo:%s\\r\\n",errno,strerror(errno));\nreturn-1;\n}\nclose(fd_src);\n}\n

运行之后的输出结果如下:

13、从图上可以看出来,因为xxxx.txt这个文件是不存在的,用open函数的只读的方式打开的话,会返回错误编号2,通过strerror函数返回的错误信息是“Nosuchfileordirectory”,说的是找不到这个文件。

14、当然,除了strerror函数之外,还有一个函数也是实现一样的效果的,那就是perror,这个函数会自动附加一些信息输出,可以更加方便我们输出调试查看信息!

关于本次ioerror是什么意思、读音和有关文件IO操作的错误(error)提示的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023