C言語 ファイル位置を先頭に戻す - stdio.h - [ rewind ]

2008.09.29 Monday | by LRESULT


ァイル位置を先頭に戻すには、rewind()を使います。

ファイル位置とは、テキストエディタのカーソル(キャレット)位置のようなもので
読み込みと書き込みの基準となる位置です。


rewind
書式 void rewind( FILE *fp )
機能 ファイル位置を先頭に戻す
引数 FILE *fp : ファイル(ストリーム)ポインタ
戻り値 なし


ファイル位置を先頭に戻すには、
fseek( fp, 0, SEEK_SET );

も、同じ意味となります。





サンプルコード
テキストファイル「test.txt」を読み込み、ファイル位置をファイル終端まで移動させて
ファイル位置を取得し、rewind()で先頭に戻したところを確認してみます。
#include <stdio.h>

int
main(void)
{
  FILE *fp;
  char *fname = "test.txt";
  fpos_t pos;

  fp = fopen( fname, "rb" );
  if( fp == NULL ){
    printf( "%sファイルが開けません¥n", fname );
    return -1;
  }

  fseek( fp, 0, SEEK_END );
  fgetpos( fp, &pos );
  printf( "ファイル位置は %dです¥n", pos );

  rewind( fp );
  fgetpos( fp, &pos );
  printf( "ファイル位置は %dです¥n", pos );

  fclose( fp );
  return 0;
}



結果
ファイル位置は 50です
ファイル位置は 0です
と、表示されます。

最初のfseek()では、読み込んだファイルのサイズを取得しているので
ファイルによって変わってきます。
その後、rewind()で先頭にまでファイル位置を戻しています。

カテゴリ:C言語 stdio.h | 21:37 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/58

トラックバック