File: libmagic.3

package info (click to toggle)
manpages-ja 0.5.0.0.20120606-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 25,964 kB
  • sloc: perl: 161; makefile: 116
file content (238 lines) | stat: -rw-r--r-- 8,784 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
.\"
.\" Copyright (c) Christos Zoulas 2003.
.\" All Rights Reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice immediately at the beginning of the file, without modification,
.\"    this list of conditions, and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" Japanese Version Copyright (c) 2003-2004 Yuichi SATO
.\"         all rights reserved.
.\" Translated Tue Jun  3 03:07:43 JST 2003
.\"         by Yuichi SATO <ysato444@yahoo.co.jp>
.\" Updated & Modified Sat Jan 31 21:47:17 JST 2004 by Yuichi SATO
.\"
.\"WORD:        
.\"
.Dd March 22, 2003
.Dt MAGIC 3
.Os
.Sh 名前
.Nm magic_open ,
.Nm magic_close ,
.Nm magic_error ,
.Nm magic_file ,
.Nm magic_buffer ,
.Nm magic_setflags ,
.Nm magic_check ,
.Nm magic_compile ,
.Nm magic_load
.Nd マジックナンバー識別ライブラリ
.Sh ライブラリ
.Lb libmagic
.Sh 書式
.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"
.Sh 説明
これらの関数は
.Xr magic 4
に記述されている magic データベースファイルを操作する。
.Pp
関数
.Fn magic_open
はマジッククッキーポインタを生成して返す。
マジッククッキーの割り当てにエラーがあった場合、
この関数は NULL を返す。
.Ar flags
引き数は、他のマジック関数の挙動を指定する。
.Bl -tag -width MAGIC_COMPRESS
.It Dv MAGIC_NONE
特別な処理を行わない。
.It Dv MAGIC_DEBUG
標準エラー出力にデバッグメッセージを表示する。
.It Dv MAGIC_SYMLINK
クエリしたファイルがシンボリックリンクであった場合は、それを辿る。
.It Dv MAGIC_COMPRESS
ファイルが圧縮されていた場合は、展開して内容を読み込む。
.It Dv MAGIC_DEVICES
ファイルがブロックスペシャルデバイスまたは
キャラクタスペシャルデバイスであった場合、
デバイスをオープンして内容を読み込もうとする。
.It Dv MAGIC_MIME
説明文ではなく mime 文字列を返す。
.It Dv MAGIC_CONTINUE
最初にマッチしたものだけではなく、マッチした全てを返す。
.It Dv MAGIC_CHECK
magic データベースの整合性をチェックし、
標準エラー出力に警告を表示する。
.It Dv MAGIC_PRESERVE_ATIME
.Xr utime 2
または
.Xr utimes 2
をサポートするシステムでは、
解析されたファイルのアクセス時刻を保存しようとする。
.It Dv MAGIC_RAW
印刷不能文字を \eooo のような 8 進数表現に変換しない。
.It Dv MAGIC_ERROR
ファイルやシンボリックリンクをオープンしようとしている間に
OS のエラーが起こった場合、
マジックバッファにエラーを表示せず、実際のエラーとして扱う。
.El
.Pp
.Fn magic_close
関数は
.Xr magic 4
データベースをクローズして、使用されている全てのリソースを解放する。
.Pp
.Fn magic_error
関数は最後に発生したエラーの説明文を返す。
エラーがない場合は NULL を返す。
.Pp
.Fn magic_errno
関数はシステムコールによって最後に発生した OS エラーの番号
.Xr ( errno 3 )
を返す。
.Pp
.Fn magic_file
関数は
.Ar filename
引き数で指定されたファイルの内容についての説明文を返す。
エラーが起った場合は NULL を返す。
.Ar filename
が NULL の場合は標準入力を使う。
.Pp
.Fn magic_buffer
関数はバイトサイズ
.Ar length
の引き数
.Ar buffer
の内容について、説明文を返す。
.Pp
.Fn magic_setflags
関数は上記の
.Ar flags
を設定する。
.Pp
.Fn magic_check
関数を使って、データベースファイルのエントリが有効であるかを検証できる。
検証されるデータベースは、コロン区切りのファイルリストの形式で、
.Ar filename
で指定される。
.Ar filename
が NULL の場合はデフォルトのデータベースを検証する。
検証が成功した場合は 0 を返し、
失敗した場合は -1 を返す。
.Pp
.Fn magic_compile
関数を使って、データベースをコンパイルできる。
コンパイルされるデータベースは、コロン区切りのファイルリストの形式で、
.Ar filename
で指定される。
.Ar filename
が NULL の場合は、デフォルトのデータベースがコンパイルされる。
コンパイルが成功した場合は 0 を返し、
失敗した場合は -1 を返す。
コンパイルして生成されたファイルの名前は、
各ファイル引き数に
.Xr basename 1
を適用して ".mgc" を追加したものになる。
.Pp
何かマジッククエリを実行する前には、
.Fn magic_load
関数を使ってデータベースファイルをロードしなければならない。
ロードするデータベースは、コロン区切りのファイルリストの形式で、
.Ar filename
で指定される。
.Ar filename
が NULL の場合は、デフォルトのデータベースがロードされる。
.Pp
デフォルトのデータベースファイルは、
環境変数 MAGIC によって名前が指定される。
この環境変数が設定されない場合、
デフォルトのデータベースファイル名は /usr/share/file/magic である。
.Pp
.Fn magic_load
データベースファイル名に ".mime" と ".mgc" を適宜追加する
(どちらか一方の場合もある)。
.Sh 返り値
関数
.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 を返す。
そして、
.Xr utime 2
または
.Xr utimes 2
がサポートされていないシステムで
.Dv MAGIC_PRESERVE_ATIME
が設定されると、
.Fn magic_setflags
は -1 を返す。
.Sh ファイル
.Bl -tag -width /usr/share/file/magic.mime.mgc -compact
.It Pa /usr/share/file/magic.mime
コンパイルされていないデフォルトの magic mime データベース。
.It Pa /usr/share/file/magic.mime.mgc
コンパイル済みのデフォルトの magic mime データベース。
.It Pa /usr/share/file/magic
コンパイルされていないデフォルトの magic データベース。
.It Pa /usr/share/file/magic.mgc
コンパイル済みのデフォルトの magic データベース。
.El
.Sh 関連項目
.Xr file 1 ,
.Xr magic 4 
.Sh 著者
Mans Rullgard が最初の libmagic の実装と構成を行った。
Christos Zoulas は API を整理し、
エラーコードと (マジッククッキーの) 割り当てを実装した。