fseek vs倒带?

时间:2012-08-07 03:54:47

标签: c fopen fseek

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

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 个答案:

答案 0 :(得分:20)

它们基本上是两种不同的方法来完成同样的事情:将指针设置为文件的开头。唯一的区别是rewind也会清除错误指示符。

如果给出了选择,则应使用fseek。这是因为rewind没有返回一个整数,表明操作是否成功。

答案 1 :(得分:3)

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