Everything

fseek


ストリーム入出力用ファイルの現在の読み書き位置を移動します。

[指定形式]

#include <stdio.h>

long fseek(FILE *fp, long offset, long type);

[引数]

fp ファイルポインタ

offset オフセットの種類で指定された位置からのオフセット

type オフセットの種類

[戻り値]

正常:0

異常:0以外

[備考]

fseek関数は、ファイルポインタfpの示すストリーム入出力用ファイルの現在の読み書き位置をオフセットの種類typeで指定した場所からoffsetバイト先の位置に移動します。

オフセットの種類を表 7.14に示します。

fseek関数は、通常は0を返しますが、不適当な要求に対しては0以外の値を返します。

表 7.14

オフセットの種類

 

オフセットの種類

意味

1

SEEK_SET

ファイルの先頭からoffsetバイト先の位置に移動します。この時、offsetで指定する値は0か正でなければなりません。

2

SEEK_CUR

ファイルの現在位置からoffsetバイト先の位置に移動します。この時、offsetで指定する値が正ならばファイルの後方に、負ならばファイルの先頭に向かって移動します。

3

SEEK_END

ファイルの終わりからoffsetバイト先の位置に移動します。この時offsetで指定する値は0か負でなければなりません。

 

テキストファイルの時は、オフセットの種類はSEEK_SETで、かつoffsetは0かそのファイルに対するftell関数によって返された値でなければなりません。また、fseek関数を呼び出すことによってungetc関数の効果はなくなりますので注意が必要です。