llseek - システムコールの説明 - Linux コマンド集 一覧表
名前
_llseek - ファイルの読み書きオフセットの位置を変える
書式
#include <unistd.h>
#include <sys/types.h>
#include <linux/unistd.h>
#include <errno.h>
_syscall5(int, _llseek, unsigned int, fd, unsigned long, hi," " unsigned long, lo, loff_t *, res, unsigned int, wh) /* Using syscall(2) may be preferable; see intro(2) */
int _llseek(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t *result, unsigned int whence);
説明
_llseek
()関数は、ファイル・ディスクリプター (descriptor)
fd
に関連づけられたオープンされたファイルのオフセットの位置を、相対的に
(offset_high<<32) | offset_low
バイトだけ変更する。
基準となる位置を表す
whence
には
SEEK_SET
,
SEEK_CUR
,
SEEK_END
のいずれかを指定し、それぞれ
ファイルの先頭、ファイルの現在位置、
ファイルの最後を表す。
結果のファイル位置を
result
引き数に返す。
返り値
成功した場合は、 _llseek ()は 0 を返す。 そうでなれば -1 という値が返り、エラーを示す errno が設定される。
エラー
- EBADF
- fd がオープンされたファイル・ディスクリプターでない。
- EFAULT
- 結果をユーザ空間にコピーするときに問題があった。
- EINVAL
- whence が不正である。
準拠
この関数は Linux 特有であり、移植性の必要なプログラムでは使用してはいけない。
関連項目
lseek
(2),
lseek64
(3)