FSEEK
Section: Linux Programmer's Manual (3)
Updated: 2018-04-30
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, const 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 にエラーを示す値がセットされる。
 
エラー
- EINVAL
 - 
fseek()  関数に対して与えた whence 引数が SEEK_SET, SEEK_END, SEEK_CUR
以外の値であった。 または、更新後のファイルオフセットが負になってしまう。
 - ESPIPE
 - 
The file descriptor underlying stream is not seekable (e.g., it refers to
a pipe, FIFO, or socket).
 
fgetpos(), fseek(), fsetpos(), ftell()  は、それぞれ fflush(3),
fstat(2), lseek(2), malloc(3)  などのルーチンを呼び出す際に失敗する可能性がある。この場合は
それぞれ対応した errno が設定される。
 
属性
この節で使用されている用語の説明については、 attributes(7) を参照。
| インターフェース | 属性 | 値
  | 
fseek(),
ftell(),
rewind(),
 
fgetpos(),
fsetpos()
 | Thread safety | MT-Safe
  | 
 
準拠
POSIX.1-2001, POSIX.1-2008, C89, C99.
 
関連項目
lseek(2), fseeko(3)
 
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/ に書かれている。
 Index
- 名前
 - 
 - 書式
 - 
 - 説明
 - 
 - 返り値
 - 
 - エラー
 - 
 - 属性
 - 
 - 準拠
 - 
 - 関連項目
 - 
 - この文書について
 - 
 
This document was created by
man2html,
using the manual pages.
Time: 16:46:41 GMT, November 24, 2023