ヘッダ | stdio.h |
書式 | long ftell(FILE *fp); |
引数 | fp … ファイルポインタ |
戻り値 | 成功:ファイルポインタの位置 失敗:-1 |
解説 | 現在開いているファイルポインタのバイト単位の位置を返却する。ファイルサイズが大きく、返却値longの範囲を超えないように注意する必要がある。 |
/****************************************************************************/ #include<stdio.h> int main() { // 変数定義 FILE *fp; int pos; int c; // 変数初期化 fp = NULL; pos = 0; c = 0; // ファイルオープン fp = fopen("test.txt", "r"); if(fp == NULL) // ファイルオープン失敗 { fprintf(stderr, "ファイルオープンエラー\n"); return 1; // 異常終了 } // ファイルポインタの位置を調べる pos = ftell(fp); // ファイルポインタの位置を取得 fprintf(stdout, "ファイルポインタの位置:%d\n", pos); // ファイル終端から5バイト手前に移動する if(fseek(fp, -5, SEEK_END)) { fprintf(stderr, "fseekエラー\n"); return 1; // 異常終了 } // ファイルポインタの位置を調べる pos = ftell(fp); // ファイルポインタの位置を取得 fprintf(stdout, "ファイルポインタの位置:%d\n", pos); // ファイル先頭から6バイト先に移動する if(fseek(fp, 6, SEEK_SET)) { fprintf(stderr, "fseekエラー\n"); return 1; // 異常終了 } // ファイルポインタの位置を調べる pos = ftell(fp); // ファイルポインタの位置を取得 fprintf(stdout, "ファイルポインタの位置:%d\n", pos); // 1バイト読み込む c = fgetc(fp); fprintf(stdout, "読み込んだ文字:%c\n", c); // ファイルポインタの位置を調べる pos = ftell(fp); // ファイルポインタの位置を取得 fprintf(stdout, "ファイルポインタの位置:%d\n", pos); // ファイルクローズ fclose(fp); return 0; } /****************************************************************************/
プログラムで使用するtest.txtの内容(10バイト)
--------------------------
ABCDEFGHIJ
--------------------------
Copyright(c) 2010 , cgengor
このWebページの内容を無断で複製または転載することを禁じます。
このWebページの情報を利用することにより発生したいかなる損害について著作権保有者はいっさいの責任を負いません。