EN JA
LSEEK64(3)
LSEEK64(3) Linux Programmer's Manual LSEEK64(3)

名前

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) を参照すること。

関連項目

llseek(2), lseek(2)

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2004-12-11 Linux