fseek vs rewind?

19

我注意到有两种方法可以返回文件开头

FILE *fp = fopen("test.bin", "r")
fseek(fp, 0, SEEK_END);
rewind(fp);

并且。
FILE *fp = fopen("test.bin", "r")
fseek(fp, 0, SEEK_END);
fseek(fp, 0, SEEK_SET);

这些方法之间有什么区别(如果有的话)?
2个回答

23

实现同一目的有两种基本不同的方法:将指针设置为文件开头。唯一的区别是,rewind 还会清除错误指示器。

如果可以选择,应该使用 fseek。这是因为 rewind 不返回一个整数来指示操作是否成功。


4
如果fseek()返回成功,它还会清除文件结束指示器,而rewind()则不会这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接