Loose-Info.com

Last Update 2019/12/24


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