Last Update 2012/07/05
ファイル・ポインタで参照されるストリーム内の現在位置を指定位置に移動します。
戻り値1 = fseek( 引数1 , 引数2 , 引数3 )
戻り値1 :
int
実行が成功した場合 : 0
エラーが発生した場合 : 0以外
エラーが発生した場合 : 0以外
引数1 :
FILE *
ファイル・ポインタ
引数2 :
long
移動位置を示す整数値
引数3で指定される位置からのバイト数
引数3で指定される位置からのバイト数
引数3 :
int
引数2で示される「距離」の基準となる位置を示す整数値
SEEK_SET : ファイル始点
SEEK_CUR : 現在位置
SEEK_END : ファイル終点
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