Provided by: manpages-ja-dev_0.5.0.0.20140515+dfsg-2_all
名前
lseek64 - ファイルの 64 ビットの読み書きオフセットの位置を変える
書式
#define _LARGEFILE64_SOURCE /* feature_test_macros(7) 参照 */ #include <sys/types.h> #include <unistd.h> off64_t lseek64(int fd, off64_t offset, int whence);
説明
lseek(2) 関数ファミリーは、ファイルディスクリプタ fd に関連するオープンされたファイルのオ フセットを、 ファイルの開始位置・現在位置・終端から offset の位置へ変更する。 これは whence がそれぞれ SEEK_SET, SEEK_CUR, SEEK_END の場合に対応する。 更に詳しい説明・返り値・エラーは、 lseek(2) を参照すること。 4 つのインタフェースが使用可能である: lseek(2), lseek64(), llseek(2) と元となるシステム コール _llseek(2) である。 lseek プロトタイプ: off_t lseek(int fd, off_t offset, int whence); lseek(2) は型 off_t を使う。 これは 32 ビットアーキテクチャ上では 32 ビット符号付き型であ る。 ただし、 #define _FILE_OFFSET_BITS 64 を定義してコンパイルした場合は 64 ビット符号付き型である。 lseek64 プロトタイプ: 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() のエイリアスとして定義されて いる。 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." これにより、警告なしでコンパイルしたい場合には、この関数を使用不可にできる。 _llseek 上記の全ての関数は、このシステムコールに基づいて実装される。 プロトタイプは以下の通り: int _llseek(int fd, off_t offset_hi, off_t offset_lo, loff_t *result, int whence); 更に詳しい情報は、 llseek(2) を参照すること。
属性
マルチスレッディング (pthreads(7) 参照) 関数 lseek64() はスレッドセーフである。
関連項目
llseek(2), lseek(2)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。