在C語言中,fseek()比rewind()更可取。
請注意以下文本C99標準:
快退函數將流指向的流的文件位置指示符設置到文件的開頭。相當於
(void)fseek(stream, 0L, SEEK_SET)
除了也清除了流的錯誤指示符。
下麵的代碼示例使用rewind()將輸入流的文件位置指示符設置回開頭。但是無法檢查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()來查看操作是否成功。可以使用以下代碼行代替rewind(fp);
if ( fseek(fp, 0L, SEEK_SET) != 0 ) {
/* Handle repositioning error */
}
相關用法
注:本文由純淨天空篩選整理自 fseek() vs rewind() in C。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。