前: Sample Database, 上: Database Formats
古いデータベースの書式は,Unixのlocateとfindプログラム,
そして早期のGNUがリリースしたもので使用されています.updatedbは,
`--old-format'オプションが与えられた場合,この書式で生成します.
updatedbは,古い書式のデータベースを生成するために,
bigram とcodeと呼ばれるプログラムを実行します.古い書式は,
新しいものと以下の方式で異なります.オフセット差分数バイトで始まりヌル
で終るそれぞれの項目の代わりに,-14から14までのオフセット差分数を示す0
から28の値になります.それ以上の大きなオフセット差分数を示すバイト値は,
0x1e (30)で0x80ではありません.大きな数は,ホストのバイト順でソートされ,
それはネットワークバイトの順序である必要はなく,ホストのワード整数の大
きさとなっていて,それは通常4バイトです.その値が14より小さいものは表示
されません.データベースの行には終端バイトがありません.次の行の先頭は,
30より小さい値を持つバイトで示されます.
更に,最初のダミー項目で始まる代わりに,古いデータベース書式は,ファイ
ルリストで最も一般的な128のbigramを含んでいる,256バイトの表で始
まります.bigramは調整されたバイトの組となっています.ハイビット
セットを持つデータベースのバイトは,(ハイビットがクリアされてい
る)bigram表内部の索引です.bigramとオフセット差分数の符合
化は,これらのデータベースを,新しい書式より20から25%まで小さくしますが,
8ビットクリーンにはなりません.特殊コードに使用される範囲にあるファイル
名のバイトは,データベース内では疑問符に置換され,それは,単一文字にマッ
チするシェルのワイルドカードにはマッチしません.
そのため古い書式では,ASCII以外の文字の項目を忠実の保存することが不可能 です.そのため,国際化環境では使用すべきではありません.
`locate --statistics'の出力は,古い書式の改行やハイビット文字を含 むファイル名の計数で間違えてしまうでしょう.