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: 16:46:44 GMT, November 24, 2023