C errno

errno 是在 errno.h 头文件中定义的一个**宏**。当发生任何错误时,系统调用和一些库函数会设置 errno 宏。


extern int errno; 

 

errno 参数:

errno 宏不接受任何参数。errno 是一个整数变量,它保存错误代码以报告错误原因。

 

errno 返回值

errno 宏不返回任何值。在程序开始时,errno 值被设置为零。通过一些库函数,errno 的值被设置为一些正值以报告特定的错误情况。


 

errno 示例

示例 1:C 语言中 errno 函数的工作原理是什么?


#include <stdio.h>
#include <errno.h>
#include <string.h>

extern int errno ;

int main () {
   FILE *pnt;

   pnt = fopen("myfile.txt", "r");
   if( pnt == NULL ) {
      fprintf(stderr, "Value of errno is: %d\n", errno);
      fprintf(stderr, "Error opening file is: %s\n", strerror(errno));
   } else {
      fclose(pnt);
   }
   
   return(0);
}

输出


Value of errno is: 2
Error opening file is: No such file or directory