ファイル ポインターをファイルの先頭に位置変更します。Repositions the file pointer to the beginning of a file.


void rewind(
   FILE *stream


FILE 構造体へのポインター。Pointer to FILE structure.


Rewind関数は、ストリームに関連付けられたファイルポインターをファイルの先頭に再配置します。The rewind function repositions the file pointer associated with stream to the beginning of the file. rewind 関数の呼び出しは、次の関数の呼び出しと似ています。A call to rewind is similar to

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

ただし、 fseekとは異なり、巻き戻しはストリームのエラーインジケーターとファイルの終端インジケーターをクリアします。However, unlike fseek, rewind clears the error indicators for the stream as well as the end-of-file indicator. また、 fseekとは異なり、 rewindはポインターが正常に移動されたかどうかを示す値を返しません。Also, unlike fseek, rewind does not return a value to indicate whether the pointer was successfully moved.

キーボードバッファーをクリアするには、既定でキーボードに関連付けられているストリームstdinrewindを使用します。To clear the keyboard buffer, use rewind with the stream stdin, which is associated with the keyboard by default.

Stream がNULLポインターの場合は、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーが呼び出されます。If stream is a NULL pointer, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合、この関数はを返し、 errnoEINVALに設定されます。If execution is allowed to continue, this function returns and errno is set to EINVAL.

これらと他のエラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。For information on these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.


ルーチンRoutine 必須ヘッダーRequired header
巻きrewind <stdio.h><stdio.h>

互換性の詳細については、「互換性」を参照してください。For additional compatibility information, see Compatibility.


C ランタイム ライブラリのすべてのバージョン。All versions of the C run-time libraries.


// 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

関連項目See also

ストリーム入出力Stream I/O