MAGIC
Section: C Library Functions (3)
Index
JM Home Page
roff 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 を整理し、
エラーコードと (マジッククッキーの) 割り当てを実装した。
 Index
- 名前
- 
- ライブラリ
- 
- 書式
- 
- 説明
- 
- 返り値
- 
- ファイル
- 
- 関連項目
- 
- 著者
- 
This document was created by
man2html,
using the manual pages.
Time: 03:27:11 GMT, April 25, 2010