lseek()返回值可能是负数的情况?

C、C++和Java语言
回复
头像
小锐同学
帖子: 314
注册时间: 2009-08-14 16:24
送出感谢: 0
接收感谢: 0

lseek()返回值可能是负数的情况?

#1

帖子 小锐同学 » 2010-01-15 8:45

《Unix环境高级编程》上说:

代码: 全选

通常,文件的当前偏移量是一个非负整数,但是,某些设备也可能允许负的偏移量。但对于普通文件,则其偏移量必须是非负值。因为偏移量可能是负值,所以在比较lseek的返回值时应当谨慎,不要测试它是否小于0,而要测试它是否等于-1.
这个不明白,参考资料上都没说lseek能返回除了-1之外的其他负值。
我很乖的。。。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

Re: lseek()返回值可能是负数的情况?

#2

帖子 BigSnake.NET » 2010-01-15 13:54

代码: 全选

RETURN VALUE
       Upon successful completion, lseek() returns the resulting offset location as measured
       in bytes from the beginning of  the  file.   Otherwise,  a  value  of  (off_t) -1  is
       returned and errno is set to indicate the error.
错误返回 -1 并设置 errno, 否则就不是错误
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复

回到 “C/C++/Java”