lseek

LSEEK(2)                    Linux Programmer's Manual                   LSEEK(2)



名前
       lseek - ファイルの読み書きオフッセトの位置を変える

書式
       #include <unistd.h>

       off_t lseek(int fildes, off_t offset, int whence);

説明
       lseek 関数はファイル・ディスクリター(descriptor) fildes のオフセットを whence に従って offset
       引き数の位置へ変更する。 fildes 引き数はオープンされたファイル・ディスクリプターである。 lseek fildes
       のファイル・ポインターを以下のように変更する:

              whence SEEK_SET ならば、オフセットは offset バイトに設定される。

              whence SEEK_CUR ならば、オフセットは現在の位置に offset バイトを加えた場所に設定される。

              whence SEEK_END ならば、オフセットの位置はファイルのサイズに offset バイトを加えた場所に設定される。

       lseek 関数はオフセットを存在するファイルのファイルの最後(end-of-file)を
       超えた場所に設定することができる。もしデータがこの時点より後に書き込まれた
       ならば、間の空隙の部分を読み込んだ場合は(実際にそこにデータを書き込むまでは )ゼロのバイト列が返される。

       ある種のデバイスは lseek を行えない。そのようなデバイスに関連した ポインターは未定義となる。

返り値
       成功した場合は lseek は結果のファイル位置をファイルの先頭からのバイト数で返す。そうでなれば 値として -1 を返し、 errno
       にエラーが指示される。

エラー
       EBADF  fildes がオープンされたファイル・ディスクリプターでない。

       ESPIPE fildes がパイプ(pipe), ソケット(socket), FIFO を参照している。

       EINVAL whence が正しい値でない。


準拠
       SVr4, POSIX, BSD 4.3

バグ
       この文章で使用した whence は英語として正しくないが、 歴史的理由により維持されている。

関連項目
       dup(2), open(2), fseek(3)



Linux 1.2.9                       10 June 1995                          LSEEK(2)