当前位置:网站首页 > 技术博客 > 正文

c语言 1error(s)



1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!

我们大多都使用printf来打印一些信息,其它的接口都比较少用。这里介绍一个被我们遗忘的打印输出函数:。

perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。

在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和errno所对应的错误一起输出。

下面通过例子看一下使用printf与使用perror的区别:

(1)使用printf的例子:

此时,我们本地的/home/book/路径下并没有test_file文件,编译运行就会输出错误信息:

(2)使用perror的例子:

同上,编译运行。此时会输出错误信息:

可以看到,使用perror能多输出点详细信息。

前面说了,错误原因依照全局变量errno中。换句话说就是一些全局变量errno保存的就是一些错误代码。我们可以看到在一些比较系统的代码/工程中,常常会设计一些错误代码,方便统一管理。

在Linux内核(我这里的内核版本是4.9.88)中,这些系统错误代码在文件 及 中:

这些错误代码后面有一些描述注释,这些描述也不仅仅是作为注释使用,也有与这些错误代码建立一一对应的字符串输出关系,比如:

所以才有了上例的的输出。

除此之外,我们也可以不去阅读代码,而是通过 工具来查询这些错误代码及描述。

我们可以输入命令看看有没有errno工具,如果没有,则会提示安装:

使用命令查看系统错误代码及描述:

以上就是本次的分享,如有错误,欢迎指出!谢谢


从串口驱动到Linux驱动模型

串口打印知多少?

1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!


 

  • 上一篇: emule v0.50b如何使用
  • 下一篇: 效率工具
  • 版权声明


    相关文章:

  • emule v0.50b如何使用2025-05-05 22:01:05
  • rsa公钥密码算法例题2025-05-05 22:01:05
  • uboot 内核 文件系统2025-05-05 22:01:05
  • 左移位运算符什么意思2025-05-05 22:01:05
  • 串口调试助手使用说明2025-05-05 22:01:05
  • 效率工具2025-05-05 22:01:05
  • 图码是什么意思2025-05-05 22:01:05
  • make pair函数2025-05-05 22:01:05
  • oracle中rownum是什么2025-05-05 22:01:05
  • srt字幕制作软件2025-05-05 22:01:05