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\n",errno); 14 message=strerror(errno); 15 printf("Mesg:%s\n",message); 16 } 17 exit(0); 18 }
19 输出: 20 error=2 21 Mesg:No such file or direcory