fseek - ファイルのリードライト位置の変更

【書式】

#include <stdio.h>

int fseek(FILE *fp, long offset, int ptrname);

【解説】

fseek() はファイルポインタfpで示されるファイルの次のリードライト位置

を変更します。新しい位置はptrnameが示す場所からoffset バイトだけ前あ

るいは後になります。

ptrname の値は<stdio.h>で定義されている次の3種類の指定方法のうちひと

つを選択できます。

SEEK_SET

ファイルの先頭からの絶対位置

SEEK_CUR

現在の位置からの相対位置

SEEK_END

ファイルの最後からの相対位置

【リターン値】

成功した場合は0を返し、失敗したときは0以外の値を返します。

【可搬性】

ANSI, UNIX, DOS窓

【参照】

ftell(3), rewind(3), lseek(3)

【バグ】

テキストモードのファイルに対して

fseek(fp, 0L, SEEK_END);

を実行したとき、 ファイルの最後に '\x1A' があると、 現在の位置はその

'\x1A'の前になります。これは、最後に'\x1A'を持つファイルの後ろにデー

タを追加したとき、それが'\x1A'の後ろに入ると好ましくないからです。

バイナリモードのファイルではこのようなことはありません。

【copyright (c) 安江正樹@東海大学理学部物理学科】