.\" Copyright 2004 Andries Brouwer . .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 2005 Yuichi SATO .\" all rights reserved. .\" Translated Sun Jan 30 03:23:04 JST 2005 .\" by Yuichi SATO .\" .TH LSEEK64 3 2014\-08\-19 Linux "Linux Programmer's Manual" .SH 名前 lseek64 \- ファイルの 64 ビットの読み書きオフセットの位置を変える .SH 書式 \fB#define _LARGEFILE64_SOURCE\fP /* feature_test_macros(7) 参照 */ .br \fB#include \fP .br \fB#include \fP .sp \fBoff64_t lseek64(int \fP\fIfd\fP\fB, off64_t \fP\fIoffset\fP\fB, int \fP\fIwhence\fP\fB);\fP .SH 説明 \fBlseek\fP(2) 関数ファミリーは、ファイルディスクリプター \fIfd\fP に関連するオープンされたファイルのオフセットを、 ファイルの開始位置・現在位置・終端から \fIoffset\fP の位置へ変更する。 これは \fIwhence\fP がそれぞれ \fBSEEK_SET\fP, \fBSEEK_CUR\fP, \fBSEEK_END\fP の場合に対応する。 .LP 更に詳しい説明・返り値・エラーは、 \fBlseek\fP(2) を参照すること。 .PP 4 つのインターフェースが使用可能である: \fBlseek\fP(2), \fBlseek64\fP(), \fBllseek\fP(2) と元となるシステムコール \fB_llseek\fP(2) である。 .SS lseek プロトタイプ: .nf .sp .in +4n \fBoff_t lseek(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, int \fP\fIwhence\fP\fB);\fP .in .fi .sp \fBlseek\fP(2) は型 \fIoff_t\fP を使う。 これは 32 ビットアーキテクチャー上では 32 ビット符号付き型である。 ただし、 .nf .sp .in +4n #define _FILE_OFFSET_BITS 64 .in .sp .fi を定義してコンパイルした場合は 64 ビット符号付き型である。 .SS lseek64 プロトタイプ: .nf .sp .in +4n \fBoff64_t lseek64(int \fP\fIfd\fP\fB, off64_t \fP\fIoffset\fP\fB, int \fP\fIwhence\fP\fB);\fP .in .fi .sp ライブラリルーチン \fBlseek64\fP() は \fIoff_t\fP が 32 ビット型であっても 64 ビット型を使う。 このプロトタイプ (と型 \fIoff64_t\fP) は、以下の定義をしてコンパイルした場合にのみ使用可能である。 .nf .sp .in +4n #define _LARGEFILE64_SOURCE .in .sp .fi .\" in glibc 2.0.94, not in 2.0.6 関数 \fBlseek64\fP() は glibc 2.1 以降で使用可能であり、 \fBllseek\fP() のエイリアスとして定義されている。 .SS llseek プロトタイプ: .nf .sp .in +4n \fBloff_t llseek(int \fP\fIfd\fP\fB, loff_t \fP\fIoffset\fP\fB, int \fP\fIwhence\fP\fB);\fP .in .fi .sp .\" in libc 5.0.9, not in 4.7.6 型 \fIloff_t\fP は 64 ビット符号付き型である。 ライブラリルーチン \fBllseek\fP() は glibc で利用可能であり、 特別な定義なしに動作する。 しかしながら、 glibc のヘッダーはプロトタイプを供していない。 ユーザーは上記のプロトタイプまたはそれと同等のものを、 自身のソースに追加しなければならない。 このデータがないことによって \fBe2fsck\fP(8) のコンパイルが失敗するという苦情がユーザーから出たので、 glibc 2.1.3 では以下のようなリンク時の警告が追加された。 .sp .in +4n "the \`llseek\' function may be dangerous; use \`lseek64\' instead." .in .sp これにより、警告なしでコンパイルしたい場合には、この関数を使用不可にできる。 .SS _llseek 上記の全ての関数は、このシステムコールに基づいて実装される。 プロトタイプは以下の通り: .nf .sp .in +4n \fBint _llseek(int \fP\fIfd\fP\fB, off_t \fP\fIoffset_hi\fP\fB, off_t \fP\fIoffset_lo\fP\fB,\fP \fB loff_t *\fP\fIresult\fP\fB, int \fP\fIwhence\fP\fB);\fP .in .fi .sp 更に詳しい情報は、 \fBllseek\fP(2) を参照すること。 .SH 属性 .SS "マルチスレッディング (pthreads(7) 参照)" 関数 \fBlseek64\fP() はスレッドセーフである。 .SH 関連項目 \fBllseek\fP(2), \fBlseek\fP(2) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man\-pages/ に書かれている。