origin
之类的函数中使用以确定从您的位置计数的位置:
fseek
,
offset
和
SEEK_SET
。
SEEK_CUR
和
SEEK_END
似乎是自称是指文件流的当前位置和结尾,但是为什么
SEEK_CUR
曾经用来意思是开始呢?为什么不类似
SEEK_END
?由于您可以添加一个偏移。通过使用
SEEK_SET
,您可以明确设置偏移量。 (通过将其添加到开始)
SEEK_BEG
从lseek的Manpage:
SEEK_SET
其他问题的答案是“因为
The new position, measured in bytes, is
obtained by adding offset bytes to the position specified by whence.
If whence is set to SEEK_SET, SEEK_CUR, or SEEK_END, the offset is
relative to the start of the file, the current position indicator, or
end-of-file, respectively.
有第二个论点并不总是为零”。
SEEK_SET
The file offset is set to offset bytes.
SEEK_CUR
The file offset is set to its current location plus offset
bytes.
SEEK_END
The file offset is set to the size of the file plus offset
bytes.
会将其设置为文件的开头,这可能会让您想知道为什么没有称其为
fseek
。
但是,当然有第二个论点,通常您将其作为有趣的,非零的偏移。 在大部分时间里,第二个论点是您想要寻求的绝对偏移,这就是SEEK_CUR
的意思。 为了方便起见,您还可以设置一个位置加上当前位置的位置,这是SEEK_END
的目的,或者是文件的末尾,这就是
SEEK_SET
SEEK_BEG
的目的。
在
fseek
是
SEEK_SET
和偏移IS
0的情况下,这意味着您正在尝试将文件指针设置为文件的开始,也许应该有方便的快捷方式。 但是捷径未称为
SEEK_CUR
,这是一个完全不同的库函数:
SEEK_END
,这确实是
whence
.的快捷方式。