C-standard-library-c-function-fgetpos

提供:Dev Guides
移動先:案内検索

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

説明

Cライブラリ関数 int fgetpos(FILE stream、fpos_t * pos)は、 *stream の現在のファイル位置を取得し、 pos に書き込みます。

宣言

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

int fgetpos(FILE *stream, fpos_t *pos)

パラメーター

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

戻り値

この関数は成功すると0を返し、エラーの場合は0以外の値を返します。

次の例は、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("This is going to override previous content", fp);
   fclose(fp);

   return(0);
}

上記のプログラムをコンパイルして実行し、次の内容を持つファイル file.txt を作成しましょう。 まず、* fgetpos()関数を使用してファイルの初期位置を取得してから、ファイルにHello、World!を書き込みますが、後で fsetpos()*関数を使用して、ファイルし、次の内容でファイルを上書きします-

This is going to override previous content

今、私たちは次のプログラムを使用して上記のファイルの内容を見てみましょう-

#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);
}

上記のプログラムをコンパイルして実行し、次の結果を生成しましょう-

This is going to override previous content