次: , 上: Database Formats


5.2.1 新しいデータベースの書式

updatedbは,4の要素を5にする1ことでデータベースの大きさが小さくなるように,ファイル名のリ ストを前部圧縮(front-compress)するため,frcodeを実行します. 前部圧縮(増分符合化としても知られている)は以下のように動作します.

データベースの項目は,(ユーザの利便性のため,大文字小文字を識別しないで) ソートされているリストです.リストはソートされているので,それぞれの項 目は,前の項目と同じ接頭辞(最初の文字列)を共有することがよくあります. それぞれのデータベース項目はオフセットバイトの差分の数で始まっていて, それは前の項目の更に前のものが使用している数より多くなる,前の項目に前 置される接頭辞への追加の文字数です.(数は負になることもあります.) それ 以降の数は,ヌルで終端されているASCII文字の残りです—共有している接尾 辞以降の名前の部分です.

オフセット差分数がバイト(+/-127)で保存できるものより大きい場合,バイト の値が0x80になり,それ以下の2バイトがその数値になっていて,それはハイバ イトを最初(ネットワークバイトの順序)にしたものを用います.

すべてのデータベースは,LOCATE02と呼ばれるダミーの項目で始まって いて,それは,データベースファイルの書式が正しいことを確認するために, locateが調査するものです.検索時にはその項目は無視されます.

最初の(ダミー)項目を,先頭のデータベース以外からすべて切り取っても,デー タベースを連結させることは不可能です.これは,二番目とそれ以降の最初の 項目にあるオフセット差分数が間違ってしまうためです.

`locate --statistics'の出力で,新しいデータベースの書式は `LOCATE02'として参照します.


脚注

[1] 訳注:原文はby a factor of 4 to 5