Errno 3Linux手册页
Linux 系统函数出错时的errno
机制,蛮适合初学底层编程的你研究一下。多系统调用,比如open
,一旦失败就会设置errno
,返回值通常是-1
。你可以根据errno
的值判断出错原因,比如文件不存在啦、权限问题啦,挺直观的。
errno的值都是一些以E
开头的常量,比如ENOENT
表示文件不存在、EACCES
表示权限不够。它们都定义在
头文件里,写系统级代码或者socket
、文件 IO 问题时,挺有用。
还有一点值得注意,有些返回指针的函数,出错时不会设errno
,而是直接返回NULL
,像fopen
就是。所以判断方式别搞混了。
如果你在python
的socket
超时或OSError
、MySQL
文件打不开这些问题时看到errno
,多半可以从这查出原因。顺手推荐几个相关链接,蛮实用的:
- C 头文件 errno.h
- python socket 超时设置 errno10054
- Python 错误 Errno24 Too many open files
- linux 网络编程 errno 详解
如果你经常和系统调用打交道,可以把errno
那套机制熟一熟。排错效率会高不少。
下载地址
用户评论