201 lines
6.7 KiB
Plaintext
201 lines
6.7 KiB
Plaintext
MAGIC(3) BSD Library Functions Manual MAGIC(3)
|
||
|
||
NAME
|
||
magic_open, magic_close, magic_error, magic_file,
|
||
magic_buffer, magic_setflags, magic_check, magic_compile,
|
||
magic_load -- Magic number recognition library.
|
||
|
||
LIBRARY
|
||
Magic Number Recognition Library (libmagic, -lmagic)
|
||
|
||
SYNOPSIS
|
||
#include <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);
|
||
|
||
DESCRIPTION
|
||
These functions operate on the magic database file which
|
||
is described in magic(5).
|
||
|
||
The function magic_open() creates a magic cookie pointer
|
||
and returns it. It returns NULL if there was an error
|
||
allocating the magic cookie. The flags argument specifies
|
||
how the other magic functions should behave:
|
||
|
||
MAGIC_NONE No special handling.
|
||
|
||
MAGIC_DEBUG Print debugging messages to stderr.
|
||
|
||
MAGIC_SYMLINK If the file queried is a symlink, follow
|
||
it.
|
||
|
||
MAGIC_COMPRESS If the file is compressed, unpack it and
|
||
look at the contents.
|
||
|
||
MAGIC_DEVICES If the file is a block or character spe-
|
||
cial device, then open the device and try
|
||
to look in its contents.
|
||
|
||
MAGIC_MIME_TYPE
|
||
Return a MIME type string, instead of a
|
||
textual description.
|
||
|
||
MAGIC_MIME_ENCODING
|
||
Return a MIME encoding, instead of a tex-
|
||
tual description.
|
||
|
||
MAGIC_CONTINUE Return all matches, not just the first.
|
||
|
||
MAGIC_CHECK Check the magic database for consistency
|
||
and print warnings to stderr.
|
||
|
||
MAGIC_PRESERVE_ATIME
|
||
On systems that support utime(2) or
|
||
utimes(2), attempt to preserve the access
|
||
time of files analyzed.
|
||
|
||
MAGIC_RAW Don't translate unprintable characters to
|
||
a \ooo octal representation.
|
||
|
||
MAGIC_ERROR Treat operating system errors while trying
|
||
to open files and follow symlinks as real
|
||
errors, instead of printing them in the
|
||
magic buffer.
|
||
|
||
MAGIC_NO_CHECK_APPTYPE
|
||
Check for EMX application type (only on
|
||
EMX).
|
||
|
||
MAGIC_NO_CHECK_ASCII
|
||
Check for various types of ascii files.
|
||
|
||
MAGIC_NO_CHECK_COMPRESS
|
||
Don't look for, or inside compressed
|
||
files.
|
||
|
||
MAGIC_NO_CHECK_ELF
|
||
Don't print elf details.
|
||
|
||
MAGIC_NO_CHECK_FORTRAN
|
||
Don't look for fortran sequences inside
|
||
ascii files.
|
||
|
||
MAGIC_NO_CHECK_SOFT
|
||
Don't consult magic files.
|
||
|
||
MAGIC_NO_CHECK_TAR
|
||
Don't examine tar files.
|
||
|
||
MAGIC_NO_CHECK_TOKENS
|
||
Don't look for known tokens inside ascii
|
||
files.
|
||
|
||
MAGIC_NO_CHECK_TROFF
|
||
Don't look for troff sequences inside
|
||
ascii files.
|
||
|
||
The magic_close() function closes the magic(5) database
|
||
and deallocates any resources used.
|
||
|
||
The magic_error() function returns a textual explanation
|
||
of the last error, or NULL if there was no error.
|
||
|
||
The magic_errno() function returns the last operating sys-
|
||
tem error number (errno(2)) that was encountered by a sys-
|
||
tem call.
|
||
|
||
The magic_file() function returns a textual description of
|
||
the contents of the filename argument, or NULL if an error
|
||
occurred. If the filename is NULL, then stdin is used.
|
||
|
||
The magic_buffer() function returns a textual description
|
||
of the contents of the buffer argument with length bytes
|
||
size.
|
||
|
||
The magic_setflags() function sets the flags described
|
||
above. Note that using both MIME flags together can also
|
||
return extra information on the charset.
|
||
|
||
The magic_check() function can be used to check the valid-
|
||
ity of entries in the colon separated database files
|
||
passed in as filename, or NULL for the default database.
|
||
It returns 0 on success and -1 on failure.
|
||
|
||
The magic_compile() function can be used to compile the
|
||
the colon separated list of database files passed in as
|
||
filename, or NULL for the default database. It returns 0
|
||
on success and -1 on failure. The compiled files created
|
||
are named from the basename(1) of each file argument with
|
||
``.mgc'' appended to it.
|
||
|
||
The magic_load() function must be used to load the the
|
||
colon separated list of database files passed in as
|
||
filename, or NULL for the default database file before any
|
||
magic queries can performed.
|
||
|
||
The default database file is named by the MAGIC environ-
|
||
ment variable. If that variable is not set, the default
|
||
database file name is c:/progra~1/file/share/misc/magic.
|
||
magic_load() adds ``.mgc'' to the database filename as
|
||
appropriate.
|
||
|
||
RETURN VALUES
|
||
The function magic_open() returns a magic cookie on suc-
|
||
cess and NULL on failure setting errno to an appropriate
|
||
value. It will set errno to EINVAL if an unsupported value
|
||
for flags was given. The magic_load(), magic_compile(),
|
||
and magic_check() functions return 0 on success and -1 on
|
||
failure. The magic_file(), and magic_buffer() functions
|
||
return a string on success and NULL on failure. The
|
||
magic_error() function returns a textual description of
|
||
the errors of the above functions, or NULL if there was no
|
||
error. Finally, magic_setflags() returns -1 on systems
|
||
that don't support utime(2), or utimes(2) when
|
||
MAGIC_PRESERVE_ATIME is set.
|
||
|
||
FILES
|
||
c:/progra~1/file/share/misc/magic The non-compiled
|
||
default magic data-
|
||
base.
|
||
c:/progra~1/file/share/misc/magic.mgc The compiled
|
||
default magic data-
|
||
base.
|
||
|
||
SEE ALSO
|
||
file(1), magic(5)
|
||
|
||
AUTHORS
|
||
M<>ns Rullg<6C>rd Initial libmagic implementation, and config-
|
||
uration. Christos Zoulas API cleanup, error code and
|
||
allocation handling.
|
||
|
||
BSD October 6, 2008 BSD
|