other versions
| FSEEK(3) | Linux Programmer's Manual | FSEEK(3) | 
名前¶
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);説明¶
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 以外の値であった。 または、更新後のファイルオフセットが負になってしまう。
 
準拠¶
C89, C99.関連項目¶
lseek(2), fseeko(3)この文書について¶
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。| 2014-04-02 | GNU |