Linux上的errno和strerror

部分内容参考:https://www.douban.com/note/165931644/

在Linux的api中:

errno 是记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义。

在程序代码中包含 #include <errno.h>,然后每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需要读errno这个全局变量就可以获得失败原因了。

strerror可以通过标准错误的标号,获得错误的描述字符串 ,将单纯的错误标号转为字符串描述,方便用户查找错误。

需要引入 #include <string.h>

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<errno.h>
 4 #include<stdlib.h>
 5 
 6 intmain(void)
 7 {
 8 FILE*fp;
 9 externinterrno;
10 char*message;
11 if(NULL==(fp=fopen("/dev/dsp","r+")))
12 {
13 printf("errno=%d
",errno);
14 message=strerror(errno);
15 printf("Mesg:%s
",message);
16 }
17 exit(0);
18 }
19 输出: 20 error=2 21 Mesg:No such file or direcory

 

原文地址:https://www.cnblogs.com/tshua/p/5730676.html