errno 与库函数返回的错误
errno vs errors returned by library functions
对于errno
,有一堆库函数,如strerror()
等,可以转换或打印错误代码。
但是由库函数 return 编辑的错误代码呢?
例如write()
将 return EAGAIN
、EBADF
等
这些符号是从哪里来的?它们与 strerror()
&co 兼容吗?
EAGAIN
、EBADF
等是系统错误编号的符号,defined in errno.h
。它们与 strerror
和相关函数兼容。
请注意 write
不会 return 这些值之一出错;出错时,它 returns -1,并适当地设置 errno
。
函数很少return 错误号;有趣的是,其中之一是 strerror_r
,成功时 return 为 0,失败时为 EINVAL
或 ERANGE
。
对于errno
,有一堆库函数,如strerror()
等,可以转换或打印错误代码。
但是由库函数 return 编辑的错误代码呢?
例如write()
将 return EAGAIN
、EBADF
等
这些符号是从哪里来的?它们与 strerror()
&co 兼容吗?
EAGAIN
、EBADF
等是系统错误编号的符号,defined in errno.h
。它们与 strerror
和相关函数兼容。
请注意 write
不会 return 这些值之一出错;出错时,它 returns -1,并适当地设置 errno
。
函数很少return 错误号;有趣的是,其中之一是 strerror_r
,成功时 return 为 0,失败时为 EINVAL
或 ERANGE
。