我关于errno的知识是:
* 它是库函数中定义的, 一个int, 一个lvalue, 可以被赋值.
* 如果函数返回成功, 它未必会被清0.
* 如果库函数返回失败, 它可能被设置一个非0的错误码, 也可能不会, 取决于具体的库函数.
但该书中指出, 即使库函数成功, 它仍可能被显式地设置一个非0的错误码. 这点是我没料到的, 作者的举例是fopen函数在内部可能会检测一个目标文件存在与否, 而检测函数可能会失败, 失败时就会设置errno, 但检测函数失败并不影响fopen本身的成功返回.
阅读(796) | 评论(0) | 转发(0) |