许多标准 C 和 POSIX 函数返回-1
错误和0
成功,例如truncate
, fflush
,msync
等。
int ret = truncate("/some/file", 42);
ret != -1
使用or检查是否成功是更好的做法ret == 0
,为什么?
我的想法
根据我的经验,大多数人检查错误情况 ( ret != -1
),因为通常只有一个(考虑返回NULL
或EOF
出错的函数)。然而事后看来,可以看到这些函数可以从errno
直接返回中受益(这里0
被认为没有错误)。
还有人担心函数返回的不是0
or -1
,或者稍后会添加额外的返回值。在这些情况下,测试表明成功的“最紧密”值范围 ( ) 是有意义的ret == 0
。
更新0
这是我的一个假设,人们知道它EOF
通常被定义为-1
.