TOP - C言語 - stdio.h - fseek()

ファイル・ポインタで参照されるストリーム内の現在位置を指定位置に移動します。

戻り値1 = fseek(引数1 , 引数2 , 引数3)

戻り値1 : int
          実行が成功した場合         : 0
          エラーが発生した場合       : 0以外
引数1   : FILE *
          ファイル・ポインタ
引数2   : long
          移動位置を示す整数値
          引数3で指定される位置からのバイト数
引数3   : int
          引数2で示される「距離」の基準となる位置を示す整数値
              SEEK_SET : ファイル始点
              SEEK_CUR : 現在位置
              SEEK_END : ファイル終点

(例)
#include <stdio.h>

int main ()
{
    char s[20] = "123456789";
    FILE *fp;
    char s1[10];
    int n_err = 0;

    fp = fopen("test_fopen_w.txt", "w");
    fputs(s, fp);
    fclose(fp);

    fp = fopen("test_fopen_w.txt", "r");

    fscanf(fp, "%1s", s1);
    printf("1回目 入力内容 : %s\n", s1);

    n_err = fseek(fp, 3L, SEEK_SET);
    fscanf(fp, "%1s", s1);
    printf("2回目 入力内容 : %s --- fseek()戻り値 : %d\n", s1, n_err);

    n_err = fseek(fp, 2L, SEEK_CUR);
    fscanf(fp, "%1s", s1);
    printf("3回目 入力内容 : %s --- fseek()戻り値 : %d\n", s1, n_err);

    n_err = fseek(fp, -1L, SEEK_END);
    fscanf(fp, "%1s", s1);
    printf("4回目 入力内容 : %s --- fseek()戻り値 : %d\n", s1, n_err);

    fclose(fp);

    return 0;
}

実行結果
1回目 入力内容 : 1
2回目 入力内容 : 4 --- fseek()戻り値 : 0
3回目 入力内容 : 7 --- fseek()戻り値 : 0
4回目 入力内容 : 9 --- fseek()戻り値 : 0


Copyright(C) 2006-2012 CLAYPOT. All Rights Reserved.