Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ magic() — 386BSD 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

ascii..   magic  -  file  command's magic number file The command
identifies the type of a file using, among other  tests,  a  test
for  whether  the  file  begins with a certain The file specifies
what magic numbers are to be tested for, what message to print if
a particular magic number is found, and additional information to
extract from the file.  Each line of the file specifies a test to
be  performed.  A test compares the data starting at a particular
offset in the file with a 1-byte, 2-byte, or 4-byte numeric value
or  a  string.   If the test succeeds, a message is printed.  The
line consists of the following fields: A  number  specifying  the
offset,  in  bytes,  into  the  file  of  the data which is to be
tested.  The type of the data to be tested.  The possible  values
are:  A  one-byte  value.  A two-byte value (on most systems).  A
four-byte value (on most systems).  A string of bytes.  The value
to  be  compared  with  the  value from the file.  If the type is
numeric, this value is specified in C form; if it is a string, it
is specified as a C string with the usual escapes permitted (e.g.
\n for new-line).  Numeric values may be preceded by a  character
indicating  the  operation to be performed.  It may be to specify
that the value from the file must equal the specified  value,  to
specify  that  the  value  from  the  file  must be less than the
specified value, to specify that the value from the file must  be
greater than the specified value, or to specify that the value is
to be AND'ed with the numeric value before  any  comparisons  are
done.   Numeric values are specified in C form; e.g.  is decimal,
is octal, and is hexadecimal.  to specify  that  any  value  will
match.   If  the  character  is  omitted, it is assumed to be For
string values, the byte string  from  the  file  must  match  the
specified  byte string.  The operators =, < and > (but not &) can
be applied to strings.  The length used for matching is  that  of
the string argument in the magic file.  The message to be printed
if the comparison succeeds.  If  the  string  contains  a  format
specification,  the  value  from  the  file  (with  any specified
masking performed) is printed using the  message  as  the  format
string.   Some  file formats contain additional information which
is to be printed along with the file type.  A line  which  begins
with  the character indicates additional tests and messages to be
printed.  If the test on the line preceding the first line with a
succeeds,  the  tests  specified  in  all  the  subsequent  lines
beginning with are performed, and the  messages  printed  if  the
tests  succeed.   The  next  line  which  does  not  begin with a
terminates this.  The formats and are  system-dependant;  perhaps
they  should  be  specified  as  a number of bytes (2B, 4B, etc),
since the files being recognized typically come from a system  on
which  the  lengths are invariant.  There should be more than one
level of subtests, with  the  level  possibly  indicated  by  the
number of at the beginning of the line.  - the command that reads
this file.


















Typewritten Software • bear@typewritten.org • Edmonds, WA 98026