For version 0.1.2
last update: Sun Dec 16 2007
http://www.fixedpoint.jp/gauche-magic/
このオブジェクトは C の型 magic_t をラップします。
libmagic 由来のエラーはこのクラスのオブジェクトとして生起します。
このエラーは2つのスロットを持ちます: "no" と "message" です。前者は magic 独自の errno を指します。
それぞれ C の同名の定数と同じ数値を値に持ちます。
互いに論理積が0になり、これらの論理和を magic-open や call-with-magic-set のフラグとして利用します。
フラグ `flags' を指定して <magic-set> を返します。エラーが生じた場合は #f を返します。
<magic-set> `ms' を閉じます。この関数を利用しなくても gc がいつか代わりにやってくれます。
`path' にあるマジックデータベースを読み込みます。
`path' にあるマジックデータベースを整合性チェック、もしくはコンパイルをします。
`ms' のフラグのうち MAGIC_CHECK がオンでなければならず、そうでない場合はエラーとなります。
`path' にあるファイルの情報を文字列として返します。エラーが生じた場合は #f を返します。
/usr/share/file/magic のような既定のマジックデータベースファイルのパスを返します。
フラグ `flags' を持つ <magic-set> を引数にして `proc' を呼びます。
フラグで MAGIC_CHECK がオフのとき(デフォルト)には、呼ぶ前にマジックデータベースをロードします。このデータベースはキーワード `db' で指定されたもの、指定されていない場合はデフォルトのものです。
エラーとともに戻る場合でもそうでない場合でも、引数に用いた <magic-set> は閉じられます。