HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > f > fseek - ライブラリコールの説明

fseek - ライブラリコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 準拠
  7. 関連項目

名前

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 バイトを加えることによって与えられる。 whenceSEEK_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 ()で whenceSEEK_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.

関連項目

Linux Tips 関連記事
Linux Tips(目次)
Linux ディストリビューション一覧
rpm のファイル名にあるi386とかi686とは
自分のマシンの情報を調べる
cron の設定
ssh の root ログインを禁止する
ssh を、ユーザ、IPでアクセス制限
鍵交換方式によるssh接続
鍵交換方式によるssh接続( windowsから )
複数ファイル内の文字列を置換して上書き保存する
あるグループをイニシャルグループとするユーザー一覧出力
複数ファイルのファイル名を一括変換する
連番ファイルをコマンド一発で作成する
中身がランダムなファイルを任意のサイズで作成する
Linux ユーザーアカウントをロック・アンロックする