【发布时间】:2017-05-09 12:27:07
【问题描述】:
对于文本流,偏移量应为零,或偏移量应为先前成功调用与同一文件关联的流上的 ftell 函数返回的值,并且应为 SEEK_SET。
我知道offset 必须是ftell 函数的retun 值或0,而whence 必须是SEET_SET(或0)。但是我使用了一些整数作为偏移量和不同的SEEK_...,它似乎工作得很好。
例如,这些工作:
fseek(file, 4, SEEK_CUR);
fseek(file, -1, SEEK_END);
fseek(file, 0, SEEK_CUR);
当我阅读规范时,在我看来它不应该工作。我多次尝试以这种方式使用 fseek,但从未失败。为什么它有效,我没有得到什么?
【问题讨论】:
-
请出示您的代码。
-
文件是否打开以供读取和/或写入?
-
ftell返回您可能想用作偏移量的当前位置,返回的当前位置是long int。所以你可以使用任何长整数作为偏移量 -
Chris Turner 它以 r+ 模式打开。
-
Badda 我应该显示什么代码?我的问题是关于 fseek 函数以及它的一般工作原理