off64_t lseek64(int fd, off64_t offset, int whence);
更に詳しい説明・返り値・エラーは、 lseek(2) を参照すること。
4 つのインタフェースが使用可能である: lseek(2), lseek64(), llseek(2) と元となるシステムコール _llseek(2) である。
off_t lseek(int fd, off_t offset, int whence);
ライブラリルーチン lseek() は型 off_t を使う。 これは 32 ビットアーキテクチャ上では 32 ビット符号付き型である。 ただし、
#define _FILE_OFFSET_BITS 64を定義してコンパイルした場合は 64 ビット符号付き型である。
off64_t lseek64(int fd, off64_t offset, int whence);
ライブラリルーチン lseek64() は off_t が 32 ビット型であっても 64 ビット型を使う。 このプロトタイプ (と型 off64_t) は、以下の定義をしてコンパイルした場合にのみ使用可能である。
#define _LARGEFILE64_SOURCE関数 lseek64() は glibc 2.1 以降で使用可能であり、 llseek() のエイリアスとして定義されている。
loff_t llseek(int fd, loff_t offset, int whence);
型 loff_t は 64 ビット符号付き型である。 ライブラリルーチン llseek() は libc5 と glibc で使用可能であり、特別な定義なしに動作する。 このプロトタイプは、libc5 では <unistd.h> で与えられるが、glibc はプロトタイプを提供しない。 これはプロトタイプが必要になるので良くない。 ユーザは上記のプロトタイプまたはそれと同等のものを、 自身のソースに追加しなければならない。 このデータがないことによって e2fsck(8) のコンパイルが失敗するという苦情がユーザから出たので、 glibc 2.1.3 では以下のようなリンク時の警告が追加された。
"the `llseek' function may be dangerous; use `lseek64' instead."
これにより、警告なしでコンパイルしたい場合には、この関数を使用不可にできる。
int _llseek(int fd, off_t offset_hi, off_t offset_lo, loff_t *result, int whence);
更に詳しい情報は、 llseek(2) を参照すること。