前: 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'の出力は,古い書式の改行やハイビット文字を含 むファイル名の計数で間違えてしまうでしょう.