2012-08-07 47 views
13

我注意到两个方法返回一个文件的开头fseek vs倒带?

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

会是怎样的区别,如果这些方法之间?

回答

15

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

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

3

如果fseek()返回成功,这也将清除档案结尾的指标,而rewind()没有这样做