MAGIC(3) | Library Functions Manual | MAGIC(3) |
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
MAGIC_CONTINUE
MAGIC_CHECK
MAGIC_PRESERVE_ATIME
MAGIC_RAW
MAGIC_ERROR
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
を返す。
Mans Rullgard が最初の libmagic の実装と構成を行った。 Christos Zoulas は API を整理し、 エラーコードと (マジッククッキーの) 割り当てを実装した。
March 22, 2003 | Debian |