_llseek -
ファイルの読み書きオフセットの位置を変える
#include <sys/types.h>
#include <unistd.h>
int _llseek(unsigned int fd, unsigned long offset_high,
unsigned long offset_low, loff_t *result,
unsigned int whence);
注:
このシステムコールには
glibc
のラッパー関数は存在しない。「注意」の節を参照。
_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
特有であり、移植性の必要なプログラムでは使用してはいけない。
glibc
はこのシステムコールに対するラッパー関数を提供していない。
syscall(2)
を使って呼び出すこと。
関連項目¶
lseek(2),
lseek64(3)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。