XFMTYPE(1)
NAME
xfmtype - xfm file type tester
SYNOPSIS
xfmtype -m magic_file [-f] filename ...
DESCRIPTION
The xfmtype program reads a magic configuration file and
tests each file in its command line to tell its type
according to the configuration file.
The format of the configuration file is the same as the
magic(5) with the following additions and differences:
mode type field.
Similar to long type, but offset is ignored. The test
is performed against the st_mode field of the stat
structure obtained using stat(2) system call. This
allows testing for directories, fifos ... as well as
for file permissions.
lmode type field.
Similar to mode type, but using lstat(2) instead of
stat(2). This allows testing for symbolic links.
builtin type field.
The test succeeds if the built-in type of the file is
the same as the value field. The built-in type of the
file is the type returned when all the tests fail.
Currently these are the built-in types:
"unreadable" The file could not be read.
"empty" File size is zero.
"special" Not a regular file.
"ascii" The file looks like ascii.
"data" None of the above.
regexp type field.
The value field must be a proper regular expression.
The bytes starting at offset are matched against it.
If the match succeeds, then a regsub(3) is performed
on message yielding the final message. If the type
field is of the form regexp&nnn where nnn is a possi-
tive number, then that number controls the amount of
data scanned for the matching, otherwise a compile
defined value (currently 256) is used.
long and short byte order.
xfmtype always reads longs and shorts using MSB-first
order. This makes configuration files portable to all
architectures, but some entries in original magic(5)
files might be wrong.
Continuation lines.
If a line ends with a backslash character (\), it is
continued with the following line. The maximun length
of a line is 1024 characters (counting also charaters
in continuation lines).
OPTIONS
-f file
Consider the following argument as a file, even if it
begins with `-'.
-m file
Specifies a configuration file. You can specify more
than one configuration file with several -m flags.
They are read in the order in which they are found.
Configuration files do not have effect until they are
encountered in the command line. So, files to test in
the command line before that switch will not be
affected by it.
BUGS
Bad configuration lines cause undefined behavior. In gen-
eral they are silently ignored, but that is not guaran-
teed.
There are no warning or error message except for the regu-
lar expression syntax.
There should be a syntax checking mode.
All of the above apply to xfm too.
SEE ALSO
xfm(1x) file(1) magic(5) stat(2) lstat(2)
COPYRIGHT
Copyright (c) 1995 CNM-US
Copyright (c) 1995 Juan D. Martin
AUTHOR
Juan D. Martin juando@cnm.us.es