C++ errno

Posted C和C加加

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ errno相关的知识,希望对你有一定的参考价值。

来源:http://g3v.cn/5mz9r



1.errno 介绍

  • errno 是一个全局的宏;

  • 程序执行的时候会把 errno 置上对应的错误码,同时也有一些相关的宏,如下:

#define errno (*_errno())#define _doserrno (*__doserrno())#define _sys_errlist (__sys_errlist())#define _sys_nerr (*__sys_nerr())
  • 程序开始执行的时候,errno 和 _doserrno 会被置 0,当一个系统调用出错时,errno 会被置上一个非 0 的值;因为 errno 存储了上一次调用的值,所以它可能会被成功的调用改变,所以一旦出错,需要里面把这个值输出来;

  • I/O 操作发生错误时,_doserrno 会被置上;

2.错误信息输出

  • errno 是一个数字,具体含义对应在 _sys_errlist 中,比如发生错误时,可以输出 _sys_errlist [ errno ] 来看具体含义,_sys_nerr 则代表了 _sys_errlist 这个数组的长度;

  • 为了安全性考虑,一般可以采用 perror、strerror 或 strerror_s 来进行错误码的输出;

 FILE* pf = fopen("test.txt", "r"); if (!pf) { perror("perror"); printf("strerror: %s\n", strerror(errno)); printf( _strerror("_strerror") );  }


perror: No such file or directorystrerror: No such file or directory_strerror: No such file or directory

3.错误码表查询

简单分享快乐学习,如有错误请多包涵!


PS:如果没有你的关注,那我所做的将毫无意义!欢迎分享点赞在看

以上是关于C++ errno的主要内容,如果未能解决你的问题,请参考以下文章

C++ 管道,打开的文件太多,Errno 25

C++ errno

这些 C++ 代码片段有啥作用?

有趣的 C++ 代码片段,有啥解释吗? [复制]

以下代码片段 C++ 的说明

C++ 代码片段执行