MAGIC

Section: C Library Functions (3)
Index JM Home Page

BSD mandoc
 

名前

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

ライブラリ

Lb libmagic  

書式

In magic.h Ft magic_t Fn magic_open int flags Ft void Fn magic_close magic_t cookie Ft const char * Fn magic_error magic_t cookie Ft int Fn magic_errno magic_t cookie Ft const char * Fn magic_file magic_t cookie, const char *filename Ft const char * Fn magic_buffer magic_t cookie, const void *buffer, size_t length Ft int Fn magic_setflags magic_t cookie, int flags Ft int Fn magic_check magic_t cookie, const char *filename Ft int Fn magic_compile magic_t cookie, const char *filename Ft int Fn magic_load magic_t cookie, const char *filename  

説明

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

関数 Fn 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 のエラーが起こった場合、 マジックバッファにエラーを表示せず、実際のエラーとして扱う。

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

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

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

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

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

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

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

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

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

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

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

返り値

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

関連キーワード

データベース   コンパイル   magic   マジック   説明文   成功   クッキー   引き数   mime   検証   デバイス   サポート   コロン   区切り   ロード   割り当て   クエリ   スペシャル   オープン   最初   マッチ   最後   上記   環境   変数

Linux マニュアル 一覧

関連するコマンド・関数

file.1   lkbib.1   mkpasswd.8   magic.4   updatedb.1   mcookie.1
 

Index

名前
ライブラリ
書式
説明
返り値
ファイル
関連項目
著者

This document was created by man2html, using the manual pages.
Time: 04:39:40 GMT, October 11, 2026