strerror函数
在linux编程下, 经常看到很多的函数调用的返回值都会有一句话, 错误代码存放在errno中. 比如 : open() write() creat() 函数就会把错误原因放入errno
中. 最开始我也是很纳闷的, 这个是什么啊? 具体怎么看这个错误啊. 后面终于发现, 原来调用一个函数就可以解决了啊, 挺简单的.
就像这样.
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main()
{
printf("%s\n", strerror(errno));
return 0;
}
运行结果
rpz@funct:~$ ./a.out
Success
strerror的函数.
char *strerror(int errnum) // 返回一个指针错误字符串描述错误编号
strerror
实在string.h
这个头文件中的, 同样, errno
也是存放在errno.h
头文件中.
那么现在我们要修改 errno 的值, 来看一看有什么错误提示.
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main()
{
for(int i = 0; i < 100; i++)
printf("%d : %s\n", i, strerror(i));
return 0;
}
运行结果:
rpz@funct:~$ ./a.out
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 : No such device or address
7 : Argument list too long
8 : Exec format error
9 : Bad file descriptor
10 : No child processes
perror函数也是针对errno
错误的. 可以了解一下这个函数.