rewind

重新定位指向文件开头的文件指针。

语法

void rewind(
   FILE *stream
);

参数

stream
指向 FILE 结构的指针。

备注

rewind 函数会将与 stream 关联的文件指针重新定位到文件开头。 对 rewind 的调用类似于

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

但是,与 fseek 不同,rewind 将清除流的错误指示符和文件尾指示符。 此外,与 fseek 不同,rewind 不返回指示是否已成功移动指针的值。

若要清除键盘缓冲区,请将 rewind 与默认和键盘关联的流 stdin 结合使用。

如果流是 NULL 指针,则调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则此函数将返回并将 errno 设置为 EINVAL

有关这些错误代码和其他错误代码的信息,请参阅 errno_doserrno_sys_errlist_sys_nerr

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

例程 必需的标头
rewind <stdio.h>

有关兼容性的详细信息,请参阅 兼容性

C 运行时库的所有版本。

示例

// crt_rewind.c
/* This program first opens a file named
* crt_rewind.out for input and output and writes two
* integers to the file. Next, it uses rewind to
* reposition the file pointer to the beginning of
* the file and reads the data back in.
*/
#include <stdio.h>

int main( void )
{
   FILE *stream;
   int data1, data2;

   data1 = 1;
   data2 = -37;

   fopen_s( &stream, "crt_rewind.out", "w+" );
   if( stream != NULL )
   {
      fprintf( stream, "%d %d", data1, data2 );
      printf( "The values written are: %d and %d\n", data1, data2 );
      rewind( stream );
      fscanf_s( stream, "%d %d", &data1, &data2 );
      printf( "The values read are: %d and %d\n", data1, data2 );
      fclose( stream );
   }
}

输出

The values written are: 1 and -37
The values read are: 1 and -37

另请参阅

流 I/O