FSEEK
Section: Linux Programmer's Manual (3)
Updated: 1993-11-29
Index
JM Home Page
roff page
名前
fgetpos, fseek, fsetpos, ftell, rewind - ストリームの位置を変更する
書式
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
void rewind(FILE *stream);
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, fpos_t *pos);
説明
fseek()
関数は
stream
によって指定されたストリームにおいて、ファイル位置表示子
(file position indicator) をセットする。新たな位置 (バイト単位)
は
whence
で指定された位置に
offset
バイトを加えることによって与えられる。
whence
が
SEEK_SET,
SEEK_CUR,
SEEK_END
のどれかになっている場合は、それぞれファイルの先頭、現在の位置表示子、
ファイルの末尾からのオフセットが取られる。
fseek()
関数の呼び出しが成功すると、ストリームの end-of-file 表示子は
クリアされ、それまでに
ungetc(3)
関数で戻したデータはなかったことになる。
ftell()
関数は
stream
によって指定されたストリームにおける、ファイル位置表示子
の現時点での値を与える。
rewind()
関数は
stream
によって指定されたストリームにおいて、ファイル位置表示子
をファイルの先頭にセットする。この関数は以下と等価である。
-
(void) fseek(stream, 0L, SEEK_SET)
ただし
rewind()
ではストリームに対するエラー表示子 (error indicator) も同時に
クリアされる (
clearerr(3)
を見よ)。
fgetpos()
関数と
fsetpos()
関数は、それぞれ
ftell()
と
fseek()
で
whence
に
SEEK_SET
を指定した場合と同様の機能を、異なるインターフェースで提供する。
fgetpos()
はファイルオフセットの現在の値を
pos
が参照するオブジェクトに保存し、
fsetpos()
はファイルオフセットを
pos
に設定する。
UNIX 以外のシステムにおいては、
fpos_t
が構造体などの複雑なオブジェクトになっていて、これらのルーチンがテキス
トストリームでファイル位置を変更する方法のうち、移植性のある唯一のもの
になっている場合もある。
返り値
rewind()
は返り値を持たない。
fgetpos(),
fseek(),
fsetpos()
は成功すると 0 を返す。
ftell()
は現在のオフセットを返す。失敗した場合は返り値は -1 となり、
errno
にエラーを示す値がセットされる。
エラー
- EBADF
-
指定した
stream
がシークできない。
- EINVAL
-
fseek()
関数に対して与えた
whence
引数が
SEEK_SET,
SEEK_END,
SEEK_CUR
以外の値であった。
fgetpos(),
fseek(),
fsetpos(),
ftell()
は、それぞれ
fflush(3),
fstat(2),
lseek(2),
malloc(3)
などのルーチンを呼び出す際に失敗する可能性がある。この場合は
それぞれ対応した
errno
が設定される。
準拠
C89, C99.
関連項目
lseek(2),
fseeko(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:41 GMT, November 19, 2007