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

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

説明

Cライブラリ関数int fgetpos(FILE *stream, fpos_t *pos)ストリームを取得streamの現在のファイル位置、そしてそれに書き込むpos。

宣言

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

int fgetpos(FILE *stream, fpos_t *pos)

パラメータ

  • stream-- これは FILE オブジェクトを指すポインタであり、この FILE オブジェクトはストリームを識別します。
  • pos-- これは fpos_t オブジェクトを指すポインタです。

戻り値

成功した場合、この関数はゼロを返します。エラーが発生した場合、非ゼロ値を返します。

例

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

#include <stdio.h>

int main ()
{
   FILE *fp;
   fpos_t position;

   fp = fopen("file.txt","w+");
   fgetpos(fp, &position);
   fputs("Hello, World!", fp);
  
   fsetpos(fp, &position);
   fputs("这将覆盖之前的内容", fp);
   fclose(fp);
   
   return(0);
}

上記のプログラムをコンパイルして実行すると、ファイルが作成されます。file.txt、その内容は次のとおりです。まず、私たちは使用しますfgetpos()関数がファイルの初期位置を取得し、次に私たちはファイルに書き込みますHello, World!、次に私たちは使用しますfsetpos()関数を使用して書き込みポインタをファイルの先頭にリセットし、ファイルを次の内容に書き換えます。

これは以前の内容を上書きします。

それでは、以下のプログラムを使用して上記のファイルの内容を確認してみましょう。

#include <stdio.h>

int main ()
{
   FILE *fp;
   int c;
   int n = 0;

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

   fclose(fp);

   return(0);
}

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

その他の拡張