Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       magic_open,    magic_close,   magic_error,   magic_file,   magic_buffer,   magic_setflags,   magic_check,
       magic_compile, magic_load — マジックナンバー識別ライブラリ

ライブラリ

       Magic Number Recognition Library (libmagic, -lmagic)

書式

       <magic.h> magic_t magic_open(int flags) void magic_close(magic_t cookie) const char * magic_error(magic_t
       cookie) int magic_errno(magic_t cookie) const char * magic_file(magic_t  cookie,  const  char  *filename)
       const  char  * magic_buffer(magic_t cookie, const void *buffer, size_t length) int magic_setflags(magic_t
       cookie, int flags) int  magic_check(magic_t  cookie,  const  char  *filename)  int  magic_compile(magic_t
       cookie, const char *filename) int magic_load(magic_t cookie, const char *filename)

説明

       これらの関数は magic(4) に記述されている magic データベースファイルを操作する。

       関数 magic_open() はマジッククッキーポインタを生成して返す。 マジッククッキーの割り当てにエラーがあった場
       合、 この関数は NULL を返す。 flags 引き数は、他のマジック関数の挙動を指定する。

       MAGIC_NONE      特別な処理を行わない。

       MAGIC_DEBUG     標準エラー出力にデバッグメッセージを表示する。

       MAGIC_SYMLINK   クエリしたファイルがシンボリックリンクであった場合は、それを辿る。

       MAGIC_COMPRESS  ファイルが圧縮されていた場合は、展開して内容を読み込む。

       MAGIC_DEVICES   ファイルがブロックスペシャルデバイスまたは  キャラクタスペシャルデバイスであった場合、 デ
                       バイスをオープンして内容を読み込もうとする。

       MAGIC_MIME      説明文ではなく mime 文字列を返す。

       MAGIC_CONTINUE  最初にマッチしたものだけではなく、マッチした全てを返す。

       MAGIC_CHECK     magic データベースの整合性をチェックし、 標準エラー出力に警告を表示する。

       MAGIC_PRESERVE_ATIME
                       utime(2) または utimes(2) をサポートするシステムでは、 解析されたファイルのアクセス時刻を
                       保存しようとする。

       MAGIC_RAW       印刷不能文字を \ooo のような 8 進数表現に変換しない。

       MAGIC_ERROR     ファイルやシンボリックリンクをオープンしようとしている間に OS のエラーが起こった場合、 マ
                       ジックバッファにエラーを表示せず、実際のエラーとして扱う。

       magic_close() 関数は magic(4) データベースをクローズして、使用されている全てのリソースを解放する。

       magic_error() 関数は最後に発生したエラーの説明文を返す。 エラーがない場合は NULL を返す。

       magic_errno() 関数はシステムコールによって最後に発生した OS エラーの番号 (errno(3)) を返す。

       magic_file() 関数は filename 引き数で指定されたファイルの内容についての説明文を返す。  エラーが起った場合
       は NULL を返す。 filename が NULL の場合は標準入力を使う。

       magic_buffer() 関数はバイトサイズ length の引き数 buffer の内容について、説明文を返す。

       magic_setflags() 関数は上記の flags を設定する。

       magic_check()  関数を使って、データベースファイルのエントリが有効であるかを検証できる。  検証されるデータ
       ベースは、コロン区切りのファイルリストの形式で、 filename で指定される。 filename が NULL  の場合はデフォ
       ルトのデータベースを検証する。 検証が成功した場合は 0 を返し、 失敗した場合は -1 を返す。

       magic_compile() 関数を使って、データベースをコンパイルできる。 コンパイルされるデータベースは、コロン区切
       りのファイルリストの形式で、  filename で指定される。 filename が NULL の場合は、デフォルトのデータベース
       がコンパイルされる。 コンパイルが成功した場合は 0 を返し、 失敗した場合は -1 を返す。  コンパイルして生成
       されたファイルの名前は、 各ファイル引き数に basename(1) を適用して ".mgc" を追加したものになる。

       何かマジッククエリを実行する前には、  magic_load() 関数を使ってデータベースファイルをロードしなければなら
       ない。 ロードするデータベースは、コロン区切りのファイルリストの形式で、 filename で指定される。  filename
       が NULL の場合は、デフォルトのデータベースがロードされる。

       デフォルトのデータベースファイルは、 環境変数 MAGIC によって名前が指定される。 この環境変数が設定されない
       場合、 デフォルトのデータベースファイル名は /usr/share/file/magic である。

       magic_load() データベースファイル名に ".mime" と ".mgc" を適宜追加する (どちらか一方の場合もある)。

返り値

       関数  magic_open() が成功した場合はマジッククッキーが返される。 失敗した場合は NULL が返されて、 errno が
       適切な値に設定される。 サポートされていない値がフラグに指定された場合、 errno  が  EINVAL  に設定される。
       magic_load(),  magic_compile(), magic_check() 関数が成功した場合は 0 が返され、失敗した場合は -1 が返され
       る。 magic_file(), magic_buffer()  関数が成功した場合は文字列が返され、失敗した場合は  NULL  が返される。
       magic_error() 関数は上記の関数のエラーの説明文を返す。 エラーがない場合は NULL を返す。 そして、 utime(2)
       または  utimes(2) がサポートされていないシステムで MAGIC_PRESERVE_ATIME が設定されると、 magic_setflags()
       は -1 を返す。

ファイル

       /usr/share/file/magic.mime      コンパイルされていないデフォルトの magic mime データベース。
       /usr/share/file/magic.mime.mgc  コンパイル済みのデフォルトの magic mime データベース。
       /usr/share/file/magic           コンパイルされていないデフォルトの magic データベース。
       /usr/share/file/magic.mgc       コンパイル済みのデフォルトの magic データベース。

関連項目

       file(1), magic(4)

著者

       Mans Rullgard が最初の libmagic の実装と構成を行った。 Christos Zoulas は API  を整理し、  エラーコードと
       (マジッククッキーの) 割り当てを実装した。

Debian                                           March 22, 2003                                         MAGIC(3)