C语言中的fseek()与rewind()的比较

在C语言中,fseek()应该优先于rewind()。

null

请注意以下文本C99标准: 倒带功能将流指向的流的文件位置指示器设置为文件的开头。相当于

( void ) fseek (stream, 0L, SEEK_SET)


除了流的错误指示器也被清除。

下面的代码示例使用rewind()将输入流的文件位置指示器设置回起始位置。但是无法检查回放()是否成功。

int main()
{
FILE *fp = fopen ( "test.txt" , "r" );
if ( fp == NULL ) {
/* Handle open error */
}
/* Do some processing with file*/
rewind (fp); /* no way to check if rewind is successful */
/* Do some more precessing with file */
return 0;
}


在上面的代码中,可以使用fseek()代替rewind()来查看操作是否成功。以下代码行可以用来代替倒带(fp);

if ( fseek (fp, 0L, SEEK_SET) != 0 ) {
/* Handle repositioning error */
}


资料来源: https://www.securecoding.cert.org/confluence/display/seccode/FIO07-C.+更喜欢+fseek%28%29+以+倒带%28%29

本文由 古普塔 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享