C ライブラリ関数 -fseek()

C 标准库 - <stdio.h>C 標準ライブラリ - <stdio.h>

説明

C ライブラリ関数int fseek(FILE *stream, long int offset, int whence)ストリームのstreamファイル位置を指定されたオフセットにoffset、パラメータ offset は、指定されたwhence位置からシークするバイト数を意味します。

宣言

以下は fseek() 関数の宣言です。

int fseek(FILE *stream, long int offset, int whence)

パラメータ

  • stream-- これは、ストリームを識別する FILE オブジェクトを指すポインタです。
  • offset-- これは、 whence からのオフセット(バイト単位)です。
  • whence-- これは、オフセット offset を追加する開始位置を表します。通常、以下の定数のいずれかが指定されます。
定数説明
SEEK_SETファイルの先頭
SEEK_CURファイルポインタの現在位置
SEEK_ENDファイルの末尾

戻り値

成功した場合はゼロを返し、そうでない場合は非ゼロ値を返します。

例

以下の例は、fseek() 関数の使い方を示しています。

#include <stdio.h>

int main ()
{
   FILE *fp;

   fp = fopen("file.txt","w+");
   fputs("This is example.com", fp);
  
   fseek( fp, 7, SEEK_SET );
   fputs(" C Programming Langauge", fp);
   fclose(fp);
   
   return(0);
}

上記のプログラムをコンパイルして実行すると、ファイルが作成されます。file.txt、その内容は次のとおりです。最初にプログラムはファイルを作成して書き込みます。This is example.com、しかしその後、7番目の位置で書き込みポインタをリセットし、puts() ステートメントを使用してファイルを書き換えます。内容は次のとおりです。

This is C Programming Langauge

次に、以下のプログラムを使用して上記のファイルの内容を表示してみましょう:

#include <stdio.h>

int main ()
{
   FILE *fp;
   int c;

   fp = fopen("file.txt","r");
   while(1)
   {
      c = fgetc(fp);
      if( feof(fp) )
      {
          break ;
      }
      printf("%c", c);
   }
   fclose(fp);
   return(0);
}

C 标准库 - <stdio.h>C 標準ライブラリ - <stdio.h>

その他の拡張