C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス fseek

🔧 入出力 ・ stdio.h ・ C89

fseek の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

int fseek(FILE *stream, long offset, int whence);

どんな関数か

ストリームの読み書き位置を移動する。whenceにSEEK_SET(先頭から)/SEEK_CUR(現在位置から)/SEEK_END(末尾から)を指定する。バイナリファイルのランダムアクセスに使う。

使用例

#include <stdio.h>
int main(void) {
    FILE *fp = fopen("data.bin", "rb");
    if (fp) {
        fseek(fp, 0, SEEK_END);
        long size = ftell(fp);
        printf("size=%ld\n", size);
        fclose(fp);
    }
    return 0;
}

つまずきやすい注意点

⚠️ テキストモードで開いたストリームに対するSEEK_CUR/SEEK_ENDの移動量計算は処理系依存になりうる。バイナリファイルはバイナリモードで開く。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

fseek と一緒に使う関数

ftellストリームの現在の読み書き位置を取得する。fseekと組み合わせてファイルサイズの取得や位置の保存・復元に使う。失敗時は… rewindストリームの読み書き位置を先頭へ戻し、エラー・EOF状態もクリアする。fseek(fp, 0, SEEK_SET)とほぼ…

同じ分類(入出力)の関数

fclose feof ferror fflush fgetc fgets fopen fprintf fputc fputs fread fscanf ftell fwrite getchar gets_s

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る