c语言lseek系统调用成功

success of lseek system call in c

关于lseek(C 系统调用)的一个小问题。我知道一旦失败,函数的返回值将是负数。我们能否确定如果返回值不是负数,函数实际上已移动到所需位置?


如果值为(off_t)-1,则有错误。

如果值不是(off_t)-1,则调用成功。

来自我系统的手册页,

Upon successful completion, lseek() returns the resulting offset location as measured in bytes from the beginning of the file. On error, the value (off_t)-1 is returned and errno is set to indicate the error.

有人提到 off_t 必须是有符号类型,因此检查结果是负数还是非负数似乎是安全的。