LLSEEK(2)

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

書式
#include <unistd.h>

#include <linux/unistd.h>

_syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo, loff_t *, res, uint, wh);

int _llseek(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int whence);

説明
_llseek 関数はファイル・ディスクリプター(descriptor) fd のオフセットの位置を whence が SEEK_SET, SEEK_CUR, SEEK_END のどれであるかによって、それぞれ ファイルの先頭、ファイルの現在位置、 ファイルの最後から相対的に (offset_high<<32) | offset_low バイトに変更する。 結果のファイル位置を result 引き数に返す。

返り値
成功した場合は、 _llseek は 0 を返す。そうでなれば値として -1 を返し、 errno にエラーを指示する。

エラー

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

EINVAL
    whence が不正である。

準拠
この関数は Linux 特有であり移植性の必要なプログラムでは使用してはいけない。

バグ
ext2 ファイルシステムは 2GB 以上のサイズのファイルはサポートしていない。

関連項目
lseek(2)