最終更新日時:
が更新

履歴 編集

function
<cstdio>

std::ftell

namespace std {
  long ftell(FILE* stream);
}

概要

ファイルストリームの現在位置を取得する。

戻り値

成功した場合は現在位置を返す。バイナリモードで開いたストリームでは、ファイルの先頭からのバイト数となる。

失敗した場合は-1Lを返し、errno処理系定義の値を設定する。

備考

  • テキストモードで開いたストリームでは、戻り値はバイト数とは限らない処理系定義の値となる。その値はfseek()offset引数として、基準位置SEEK_SETとともに使用できる

#include <cstdio>

int main()
{
  std::FILE* fp = std::fopen("test.txt", "wb+");
  std::fputs("ABCDEF", fp);

  // 書き込み後の現在位置を取得する
  std::printf("%ld\n", std::ftell(fp));

  std::fseek(fp, 2, SEEK_SET);
  std::printf("%ld\n", std::ftell(fp));

  std::fclose(fp);
}

出力

6
2

関連項目