C言語の標準関数を目的別に調べることができる辞典

ホーム > C 標準関数逆引き辞典 > ファイル > ストリームの現在位置を求める

C 標準関数逆引き辞典

:: reverse dictionary ::

ファイル

※ソースファイルについて


ストリームの現在位置を求める

ストリームの現在位置を求めるには、ftell 関数を使います。

≪宣言≫

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *fp;
char data[256];
int num;
long pos1, pos2, pos3;

fp = fopen("sample.txt", "rb");
if (fp == NULL)
{
  printf("sample.txt を開けませんでした。\n");
  return EXIT_FAILURE;
}

memset(data, 0, sizeof(data));  /* NULL文字で初期化 */

/* 5バイト読み込み 1回目 */
num = fread(data, sizeof(char), 5, fp);
pos1 = ftell(fp);

/* 5バイト読み込み 2回目 */
num += fread(data + num, sizeof(char), 5, fp);
pos2 = ftell(fp);

/* 5バイト読み込み 3回目 */
num += fread(data + num, sizeof(char), 5, fp);
pos3 = ftell(fp);

fclose(fp);

ソースファイル

sample.txt の内容が

ABCDEFGHIJKLMNOPQRSTUVWXYZ

となっている場合、data"ABCDEFGHIJKLMNO"pos15pos210pos315 になります。

▼ 関数

long ftell(FILE *fs)

ストリーム fs の現在位置を求めます。

この位置は、先頭からの距離をバイト単位で表した数値になります。
5 の場合は 5 バイト目)

ストリームが先頭にある場合は 0 を返します。 エラーが発生した場合は -1 を返し、グローバル変数 errno にエラー番号を設定します。

●引数

fs … ファイルストリーム

●戻り値

・ストリームが先頭以外にある … 現在位置(バイト単位)
・ストリームが先頭にある … 0
・エラー … -1

●補足

strerror 関数でエラー番号からエラーメッセージを取得できます。

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

ファイル - file -


ホーム > C 標準関数逆引き辞典 > ファイル > ストリームの現在位置を求める

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com