MAGIC
Package: WA2L/SimpleBackup 1.0.67
Section: C Library Functions (3)
Index
Return to Main Contents
BSD mandoc
NAME
magic_open
magic_close
magic_error
magic_file
magic_buffer
magic_setflags
magic_check
magic_compile
magic_load
- Magic number recognition library.
LIBRARY
Lb libmagic
SYNOPSIS
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
DESCRIPTION
These functions
operate on the magic database file
which is described
in
magic(5).
The function
Fn 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 special 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 textual 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
Fn magic_close
function closes the
magic(5)
database and deallocates any resources used.
The
Fn magic_error
function returns a textual explanation of the last error, or NULL if there was
no error.
The
Fn magic_errno
function returns the last operating system error number
(errno(2)
)
that was encountered by a system call.
The
Fn 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
Fn magic_buffer
function returns a textual description of the contents of the
buffer
argument with
length
bytes size.
The
Fn magic_setflags
function sets the
flags
described above. Note that using both MIME flags together can also
return extra information on the charset.
The
Fn magic_check
function can be used to check the validity 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
Fn 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
Fn 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 environment variable. If
that variable is not set, the default database file name is c:/progra~1/file/share/misc/magic.
Fn magic_load
adds
``.mgc''
to the database filename as appropriate.
RETURN VALUES
The function
Fn magic_open
returns a magic cookie on success 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
Fn magic_load ,
Fn magic_compile ,
and
Fn magic_check
functions return 0 on success and -1 on failure.
The
Fn magic_file ,
and
Fn magic_buffer
functions return a string on success and NULL on failure. The
Fn magic_error
function returns a textual description of the errors of the above
functions, or NULL if there was no error.
Finally,
Fn 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 database.
- c:/progra~1/file/share/misc/magic.mgc
-
The compiled default magic database.
SEE ALSO
file(1),
magic(5)
AUTHORS
Måns Rullgård Initial libmagic implementation,
and configuration.
Christos Zoulas API cleanup, error code and allocation handling.
This document was created by man2html
using the manual pages.
Time: 18:39:49 GMT, June 09, 2025