😸

[C] fseek 関数

に公開

機能

ファイル内の読み書き位置を移動する関数[1]

使用例

ファイルポインタを先頭から5バイト進める と表示する

\n は改行を表す エスケープシーケンス[2]

コード

FILE *fp = fopen("example.txt", "r");
fseek(fp, 5, SEEK_SET);  // 先頭から5バイト進める
// (ここにデータ読み書き処理)
fclose(fp);
全文
#include <stdio.h>
void main() {
    FILE *fp = fopen("example.txt", "r");
    fseek(fp, 5, SEEK_SET);  // 先頭から5バイト
    // ここで実際にデータを読むなど
    fclose(fp);
}

実行結果

(fseekには直接出力はありません。ファイルポインタの位置が5バイト先になります)

カーソルをファイル末尾に移動する を変数から表示する

コード

FILE *fp = fopen("example.txt", "r");
fseek(fp, 0, SEEK_END);  // ファイル末尾に移動
// ftell(fp)で現在位置を取得可能
fclose(fp);
全文
#include <stdio.h>
void main() {
    FILE *fp = fopen("example.txt", "r");
    fseek(fp, 0, SEEK_END);
    printf("%ld\n", ftell(fp));  // 末尾の位置(ファイルサイズ)
    fclose(fp);
}

実行結果

12
脚注
  1. ファイル内の任意の位置からデータを読んだり書いたりするために、ファイルポインタの位置を変更する関数。 ↩︎

  2. 改行やタブなど、画面に表示されない制御文字のこと。 ↩︎

Discussion