fseek 不会 return 预期的位置

fseek would not return the expected location

我有一个函数,我试图到达文件内容的最后一个索引。当我使用如下给出的描述符和 lseek 组合时,一切正常:

offset = lseek(infd, 0, SEEK_END);

结果偏移量:39(文件的字节大小)

infd 为 3

offset = fseek(file1, 0, SEEK_END);

导致偏移量 0

file1 指向 0x00007fff8897e320

当我尝试使用指向相同文件的指针时,为什么偏移量结果为 0?

注:偏移量类型为off_t

您正在使用 fseek,如果您阅读 documentation,您会发现:

Return value

​0​ upon success, nonzero value otherwise.

另一方面,lseek documentation 显示:

Return value

Upon successful completion, lseek() returns the resulting offset location as measured in bytes from the beginning of the file.

希望这能解决问题,下次我真的建议您阅读参考并检查 return 值部分!