31-错误码
2.7.2 错误码
lseek()调用出错时,返回-1,并将errno值设置成如下四个值之一:
EBADF
给定的文件描述符没有指向任何打开的文件描述符。
EINVAL
origin的值不是设置成SEEK _ SET、SEEK _ CUR或SEEK _ END,或者结果文件位置是负值。对于EINVAL,如果同时出现以上两种错误就太糟了。前者几乎可以肯定是个编译时错误,后者则是不太明显的运行时逻辑错误。
EOVERFLOW
结果文件偏移不能通过off_t表示。只有在32位的体系结构上才会发生这种错误。当前文件位置已经更新,该错误表示无法返回更新的值。
ESPIPE
给出的文件描述符和不支持查找操作的对象关联,比如管道、FIFO或socket。