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