无返回值的函数如何捕获出错情况(检查errno常量)

在执行这个函数前,先清除errno,函数返回时,检查errno常量。

每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需要读errno这个全局变量就可以获得失败原因了。

例如

 1 include <stdio.h>
 2 #include <string.h>
 3 #include <errno.h>
 4 int main(void)
 5 {
 6 int   fd;
 7 extern int errno;
 8 if((fd = open("/dev/dsp",O_WRONLY)) < 0)
 9 {   
10 printf("errno=%d
",errno);
11 }  
12 exit(0);
13 }

如果dsp设备忙的话errno值将是16。

或者用strerror函数打印出出错描述:

char * mesg = strerror(errno);
printf("Mesg:%s
",mesg);


 

原文地址:https://www.cnblogs.com/soaringEveryday/p/3525243.html