OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / draft / man3 / dbopen.3
index e4f3fe0..2c30c90 100644 (file)
@@ -1,6 +1,7 @@
 .\" Copyright (c) 1990, 1993
 .\"    The Regents of the University of California.  All rights reserved.
 .\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -28,6 +29,7 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
+.\" %%%LICENSE_END
 .\"
 .\"    @(#)dbopen.3    8.5 (Berkeley) 1/2/94
 .\"
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH DBOPEN 3 1994\-01\-02 "" "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1999 Shouichi Saito
+.\"    all rights reserved.
+.\" Translated Thu Jul 22 00:00:00 JST 1999
+.\"    by Shouichi Saito <ss236rx@ymg.urban.ne.jp>
+.\" Proofed Tue Aug 19 1999 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\" Updated 2012-05-01, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH DBOPEN 3 2012\-05\-04 "" "Linux Programmer's Manual"
 .UC 7
 .SH 名前
 dbopen \- データベースアクセスメソッド
@@ -45,11 +55,18 @@ dbopen \- データベースアクセスメソッド
 \fB#include <sys/types.h>\fP
 \fB#include <limits.h>\fP
 \fB#include <db.h>\fP
+\fB#include <fcntl.h>\fP
 
 \fBDB *dbopen(const char *\fP\fIfile\fP\fB, int \fP\fIflags\fP\fB, int \fP\fImode\fP\fB, DBTYPE \fP\fItype\fP\fB,\fP
 \fB           const void *\fP\fIopeninfo\fP\fB);\fP
 .fi
 .SH 説明
+\fI大事な注意\fP:
+このページは、バージョン 2.1 までの glibc が提供するインターフェースに
+ついて説明している。バージョン 2.2 以降の glibc では、もはやこれらの
+インターフェースは提供されていない。おそらく、このページではなく、
+\fIlibdb\fP ライブラリが提供する API をお探しなのだろう。
+
 \fBdbopen\fP()  はデータベースファイルに対するライブラリインターフェースである。 サポートされているファイルフォーマットは btree,
 hash, UNIX ファイルに指向したフォーマット, の 3 つである。 btree フォーマットは、ソートされたバランスツリー構造である。
 hashed フォーマットは、拡張可能な動的 hash スキームである。 フラットファイル (flat\-file) フォーマットは、
@@ -85,11 +102,11 @@ hashed フォーマットは、拡張可能な動的 hash スキームである
 \fItype\fP 引き数は \fIDBTYPE\fP 型である (インクルードファイル \fI<db.h>\fP で定義されている)。
 \fBDB_BTREE\fP, \fBDB_HASH\fP, \fBDB_RECNO\fP のいずれかをセットできる。
 .PP
-\fIopeninfo\fP 引き数はアクセスメソッドに固有な構造体へのポインタである。 それぞれの構造体に関しては各アクセスメソッドの
+\fIopeninfo\fP å¼\95ã\81\8dæ\95°ã\81¯ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81«å\9bºæ\9c\89ã\81ªæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\9dã\82\8cã\81\9eã\82\8cã\81®æ§\8bé\80 ä½\93ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81®
 マニュアルページに記述されている。 \fIopeninfo\fP が NULL の場合、それぞれのアクセスメソッドとシステムとに適合した
 デフォルトが用いられる。
 .PP
-\fBdbopen\fP()  は、成功した場合 \fIDB\fP 構造体へのポインタを、エラーの場合 NULL を返す。 \fIDB\fP 構造体は
+\fBdbopen\fP()  ã\81¯ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88 \fIDB\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ã\80\81ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88 NULL ã\82\92è¿\94ã\81\99ã\80\82 \fIDB\fP æ§\8bé\80 ä½\93ã\81¯
 \fI<db.h>\fP インクルードファイルの中で定義されており、 少なくとも以下のようなフィールドを持っている。
 .sp
 .in +4n
@@ -111,19 +128,19 @@ typedef struct {
 .in
 .PP
 各要素には、データベースのタイプと、 様々な動作をする関数のセットが記述されている。 これらの関数は \fBdbopen\fP()
\81«ã\82\88ã\81£ã\81¦è¿\94ã\81\95ã\82\8cã\82\8bæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8bã\80\82 ã\82­ã\83¼/ã\83\87ã\83¼ã\82¿æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿やフラグ値を取るものもある。
\81«ã\82\88ã\81£ã\81¦è¿\94ã\81\95ã\82\8cã\82\8bæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8bã\80\82 ã\82­ã\83¼/ã\83\87ã\83¼ã\82¿æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼やフラグ値を取るものもある。
 .TP 
 \fItype\fP
 用いられているアクセスメソッド (とファイルフォーマット) の型。
 .TP 
 \fIclose\fP
-キャッシュされた情報をディスクに掃きだすためのルーチンへのポインタ。 割り当てられたリソースを解放し、利用したファイル(群)をクローズする。
-キー/データ対がメモリにキャッシュされている場合、 \fIclose\fP や \fIsync\fP
\82­ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fæ\83\85å ±ã\82\92ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\8e\83ã\81\8dã\81 ã\81\99ã\81\9fã\82\81ã\81®ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83ªã\82½ã\83¼ã\82¹ã\82\92解æ\94¾ã\81\97ã\80\81å\88©ç\94¨ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«(群)ã\82\92ã\82¯ã\83­ã\83¼ã\82ºã\81\99ã\82\8bã\80\82
\82­ã\83¼/ã\83\87ã\83¼ã\82¿å¯¾ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 \fIclose\fP ã\82\84 \fIsync\fP
 関数での同期に失敗すると、情報に矛盾が生じるか情報を失う可能性がある。 \fIclose\fP ルーチンはエラーの場合 \-1 を返し (\fIerrno\fP
 をセットする)、成功すると 0 を返す。
 .TP 
 \fIdel\fP
-データベースからキー/データ対を削除するルーチンへのポインタ。
\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89ã\82­ã\83¼/ã\83\87ã\83¼ã\82¿å¯¾ã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
 .IP
 \fIflag\fP 引き数は次の値がセットできる。
 .RS
@@ -136,19 +153,19 @@ typedef struct {
 がファイル中に無い場合 1 を返す。
 .TP 
 \fIfd\fP
\94¨ã\81\84ã\81¦ã\81\84ã\82\8bã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è¿\94ã\81\99ã\83«ã\83¼ã\83\81ã\83³ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿。 同じファイル名 \fIfile\fP で \fBdbopen\fP()
\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få\85¨ã\81¦ã\81®ã\83\97ã\83­ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92示ã\81\99å\8d\98ä¸\80ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿はロック関数
-\fBfcntl\fP(2)  ã\81¨ \fBflock\fP(2)  ã\81¸ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦å®\89å\85¨ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、必ずしもアクセスメソッドで
-用いられているファイルのいずれかに関連づけられていなくても良い。 メモリ内のデータベースにはファイルデスクリプタは無い。 \fIfd\fP
\83«ã\83¼ã\83\81ã\83³ã\81¯ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88 \-1 ã\82\92è¿\94ã\81\97 (\fIerrno\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8b\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。
\94¨ã\81\84ã\81¦ã\81\84ã\82\8bã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\83«ã\83¼ã\83\81ã\83³ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼。 同じファイル名 \fIfile\fP で \fBdbopen\fP()
\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få\85¨ã\81¦ã\81®ã\83\97ã\83­ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92示ã\81\99å\8d\98ä¸\80ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼はロック関数
+\fBfcntl\fP(2)  ã\81¨ \fBflock\fP(2)  ã\81¸ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦å®\89å\85¨ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、必ずしもアクセスメソッドで
+用いられているファイルのいずれかに関連づけられていなくても良い。 メモリー内のデータベースにはファイルディスクリプターは無い。 \fIfd\fP
\83«ã\83¼ã\83\81ã\83³ã\81¯ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88 \-1 ã\82\92è¿\94ã\81\97 (\fIerrno\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8b\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。
 .TP 
 \fIget\fP
-データベースからキーを用いてデータを取り出すための ルーチンへのポインタ。 指定した \fIkey\fP に関連づけられたデータのアドレスと長さが
\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89ã\82­ã\83¼ã\82\92ç\94¨ã\81\84ã\81¦ã\83\87ã\83¼ã\82¿ã\82\92å\8f\96ã\82\8aå\87ºã\81\99ã\81\9fã\82\81ã\81® ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 æ\8c\87å®\9aã\81\97ã\81\9f \fIkey\fP ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨é\95·ã\81\95ã\81\8c
 \fIdata\fP が参照する構造体に返される。 \fIget\fP ルーチンはエラーの場合 \-1 を返し (\fIerrno\fP をセットする)、成功すると 0
 を返す。また \fIkey\fP がファイル中に無い場合 1 を返す。
 .TP 
 \fIput\fP
-キー/データ対をデータベースに納めるルーチンへのポインタ。
\82­ã\83¼/ã\83\87ã\83¼ã\82¿å¯¾ã\82\92ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ç´\8dã\82\81ã\82\8bã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
 .IP
 \fIflag\fP 引き数には次の値のうちのどれか一つがセットできる。
 .RS
@@ -185,7 +202,7 @@ typedef struct {
 \fBR_NOOVERWRITE\fP がセットされていてキーが既に存在する場合 1 を返す。
 .TP 
 \fIseq\fP
-データベースからシーケンシャルにデータを取り出すための ルーチンへのポインタ。 キーのアドレスと長さが \fIkey\fP
\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89ã\82·ã\83¼ã\82±ã\83³ã\82·ã\83£ã\83«ã\81«ã\83\87ã\83¼ã\82¿ã\82\92å\8f\96ã\82\8aå\87ºã\81\99ã\81\9fã\82\81ã\81® ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 ã\82­ã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨é\95·ã\81\95ã\81\8c \fIkey\fP
 が参照する構造体に返される。データのアドレスと長さが \fIdata\fP が参照する構造体に返される。
 .IP
 シーケンシャルなキー/データ対の取得はいつでも行える。また 「カーソル」の位置は \fIdel\fP, \fIget\fP, \fIput\fP, \fIsync\fP
@@ -223,7 +240,7 @@ typedef struct {
 かつデータベースファイルが文字型のスペシャルファイルで、 完成しているキー/データ対が無い場合には、 \fIseq\fP ルーチンは 2 を返す。
 .TP 
 \fIsync\fP
\82­ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fæ\83\85å ±ã\82\92ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\8e\83ã\81\8då\87ºã\81\99ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\80\82 ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8cã\83¡ã\83¢ã\83ªの中だけにある場合、 \fIsync\fP
\82­ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fæ\83\85å ±ã\82\92ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\8e\83ã\81\8då\87ºã\81\99ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8cã\83¡ã\83¢ã\83ªã\83¼の中だけにある場合、 \fIsync\fP
 ルーチンは何の効果もなく常に成功する。
 .IP
 flag には以下の値がセットできる。
@@ -251,12 +268,12 @@ typedef struct {
 \fIDBT\fP 構造体の各要素は次のように定義されている。
 .TP 
 \fIdata\fP
-バイト文字列へのポインタ。
\83\90ã\82¤ã\83\88æ\96\87å­\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
 .TP 
 \fIsize\fP
 バイト文字列の長さ。
 .PP
-キーとデータのバイト文字列は、 基本的には無制限の長さの文字列を参照できるが、 しかしいずれも使用可能なメモリに収まっていなくてはならない。
\82­ã\83¼ã\81¨ã\83\87ã\83¼ã\82¿ã\81®ã\83\90ã\82¤ã\83\88æ\96\87å­\97å\88\97ã\81¯ã\80\81 å\9fºæ\9c¬ç\9a\84ã\81«ã\81¯ç\84¡å\88¶é\99\90ã\81®é\95·ã\81\95ã\81®æ\96\87å­\97å\88\97ã\82\92å\8f\82ç\85§ã\81§ã\81\8dã\82\8bã\81\8cã\80\81 ã\81\97ã\81\8bã\81\97ã\81\84ã\81\9aã\82\8cã\82\82使ç\94¨å\8f¯è\83½ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81«å\8f\8eã\81¾ã\81£ã\81¦ã\81\84ã\81ªã\81\8fã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82
 アクセスメソッドはバイト文字列のアラインメントについては 何も保証していない事に注意すること。
 .SH エラー
 \fBdbopen\fP()  ルーチンは失敗するとライブラリルーチン \fBopen\fP(2)  と \fBmalloc\fP(3)  で指定されているエラーに応じた
@@ -266,27 +283,33 @@ typedef struct {
 ファイルが正しくフォーマットされていない。
 .TP 
 \fBEINVAL\fP
-指定したパラメータ(ハッシュ関数、バイト埋めなど)が現在のファイル仕様に 合っていない、パラメータが関数にとって無意味
-(例えばあらかじめ初期化しないでカーソルを使うとか)、 ファイルとソフトウェアのバージョンが合っていない。
+指定したパラメーター (ハッシュ関数、バイト埋めなど) が現在のファイル仕様
+に合っていない、パラメーターが関数にとって無意味 (例えば、あらかじめ初期
+化しないでカーソルを使うとか)、ファイルとソフトウェアのバージョンが
+合っていない。
 .PP
 \fIclose\fP ルーチンは失敗するとライブラリルーチン \fBclose\fP(2), \fBread\fP(2), \fBwrite\fP(2),
 \fBfree\fP(3), \fBfsync\fP(2)  で指定されているエラーに応じた \fIerrno\fP をセットする。
 .PP
-\fIdel\fP, \fIget\fP, \fIput\fP と \fIseq\fP ルーチンは失敗するとライブラリルーチン \fBread\fP(2), \fBwrite\fP(2),
+\fIdel\fP, \fIget\fP, \fIput\fP, \fIseq\fP ルーチンは失敗するとライブラリルーチン \fBread\fP(2), \fBwrite\fP(2),
 \fBfree\fP(3), \fBmalloc\fP(3)  で指定されているエラーに応じた \fIerrno\fP をセットする。
 .PP
-\fIfd\fP ルーチンはメモリ内データベースに対し失敗すると \fIerrno\fP に \fBENOENT\fP をセットする。
+\fIfd\fP ルーチンはメモリ内データベースに対し失敗すると \fIerrno\fP に \fBENOENT\fP をセットする。
 .PP
 \fIsync\fP ルーチンは失敗するとライブラリルーチン \fBfsync\fP(2)  で指定されているエラーに応じた \fIerrno\fP をセットする。
 .SH バグ
 typedef \fIDBT\fP は \*(lqdata base thang\*(rqの略語であるが、これが使われているのは、
 まだ使われていない妥当な名前が思い付かなかったためである。
 .PP
\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を使ったやりとりはひどい代物であり、 将来のバージョンでは削除されるだろう。
\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を使ったやりとりはひどい代物であり、 将来のバージョンでは削除されるだろう。
 .PP
 どのアクセスメソッドも、同時アクセス、ロック、トランザクション の仕組みは備えていない。
 .SH 関連項目
 \fBbtree\fP(3), \fBhash\fP(3), \fBmpool\fP(3), \fBrecno\fP(3)
-.sp
+
 \fILIBTP: Portable, Modular Transactions for UNIX\fP, Margo Seltzer, Michael
 Olson, USENIX proceedings, Winter 1992.
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。