Errno is a global variable, if you want to print the errno message about open error, and check why the error is happened.
but the errno is an int value , you can not know the specific meanings until you reference the corresponding value use man errno
but the strerror is sloved this problem completely.
char * strerror(int errnum);
strerror()用来依参数errnum的错误代码来查询其错误原因的描述字符串,然后将该字符串指针返回。
返回值 返回描述错误原因的字符串指针。
范例 /* 显示错误代码0 至9 的错误原因描述*/
#include<string.h>
main()
{
int i;
for(i=0;i<10;i++)
printf(“%d : %s\n”,i,strerror(i));
}
执行 0 : Success
1 : Operation not permitted
2 : No such file or directory
3 : No such process
4 : Interrupted system call
5 : Input/output error
6 : Device not configured
7 : Argument list too long
8 : Exec format error
9 : Bad file descriptor