C语言 fseek vs rewind?



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

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);

如果这些方法之间有什么区别的话?

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

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

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

最新更新