FSEEK

Section: Linux Programmer's Manual (3)
Updated: 2018-04-30
Index JM Home 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/ に書かれている。

関連キーワード

ストリーム   オフセット   fseek   セット   fgetpos   fsetpos   ftell   rewind   fpos   indicator   バイト   成功   クリア   インターフェース   ルーチン   返り値   stdio   long   position   単位   末尾   現時点   等価   stream   同時

Linux マニュアル 一覧

関連するコマンド・関数

fseek.3   fsetpos.3   ftell.3   rewind.3   fdopen.3   fopen.3
 

Index

名前
書式
説明
返り値
エラー
属性
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:29 GMT, October 11, 2026