od(1) od(1)
NAME
od - dump files in various formats
SYNOPSIS
od [-v] [-A address_base] [-j skip] [-N count] [-t type_string] ...
[file ...]
od [-bcDdFfOoSsvXx] [file] [[+]offset][. | b | x]
DESCRIPTION
In the first SYNOPSIS line, od displays file in one or more
formats, as selected by type_string. If the -t option is
missing, octal output (-t o2) is the default. If no file is
specified, the standard input is used. The input files are
concatenated into a single long file. Address offsets,
including those used with -A and -N, accumulate across the
files.
In the second SYNOPSIS line, od displays file in one or more
formats, as selected by the first argument. If the first
argument is missing -o is default. If no file is specified,
the standard input is used.
od processes supplementary code set characters according to
the locale specified in the LC_CTYPE environment variable [see
LANG on environ(5)].
OPTIONS
-A address_base
The base of the offset address written at the start of
all output lines is set by address_base. The meaning of
the character address_base is:
Character Meaning
__________________________________________
d Use decimal base
o Use octal base
x Use hexadecimal base
n Don't write the offset address
-j skip
Jump over skip bytes from the start of the input. If
the value of skip is greater than the combined length of
the input files, an error is generated.
The skip argument is normally interpreted as a positive
decimal integer. However, if the number is preceded by
``0x'' or ``0X'' it is interpreted as a hexadecimal
Copyright 1994 Novell, Inc. Page 1
od(1) od(1)
number, otherwise if it is preceded by ``0'' is is
interpreted as an octal number. Also, if one of the
characters b, k, or m is the final character in skip,
the offset is interpreted as a multiple of 512, 1024, or
1048576 bytes, respectively.
-N count
Process only count bytes of the input files. If the
value of count plus skip (if present) is greater than
the combined length of the input files, an error is
generated.
The count argument is normally interpreted as a positive
decimal integer. However, if the number is preceded by
``0x'' or ``0X'' it is interpreted as a hexadecimal
number, otherwise if it is preceded by ``0'' is
interpreted as an octal number.
-t type_string
The type_string is a sequence of output format
specifiers that each specify the display format of a
corresponding line in the output. So, if three
specifiers are given, each input line will be written
three times, in the three specified formats. The
specifiers in type_string have no separators.
Each specifier consists of a type specification
character possibly followed by a further qualifier. The
choices of type specification character are:
Type Specification Meaning
_____________________________________
a Named Character
c Character
d Signed Decimal
f Floating Point
o Octal
u Unsigned Decimal
x Hexadecimal
The d, f, o, u, and x type specifiers can be optionally
followed by a positive decimal integer, which gives the
size of that data type in bytes for this specification.
The d, o, u, and x type specifiers can replace the
integer with one of the following qualifier characters:
Copyright 1994 Novell, Inc. Page 2
od(1) od(1)
Type Qualifier Equivalent C Language Type
___________________________________________
C char
S short
I int
L long
In the same way, the f type specification may replace
the integer with one of the following qualifier
characters:
Type Qualifier Equivalent C Language Type
___________________________________________
F float
D double
L long double
See ``Output Format'' for more details on each type's
output format.
-v Write all input data. If -v is not specified, sequences
of lines that would all be identical but for the offset
address are abbreviated to a single asterisk (*) on a
single line.
Output Format
Each type specifier can produce a variety of formats,
described below.
a The a type specifier only examines the least significant
seven bits of each byte in the input. If the result is a
printable character, then that character is printed,
otherwise one of the names in the table below is
printed.
Value Name Value Name Value Name Value Name
_____________________________________________________________
\000 (nul) \001 (soh) \002 (stx) \003 (etx)
\004 (eot) \005 (enq) \006 (ack) \007 (bel)
\010 (bs) \011 (ht) \012 (nl) \013 (vt)
\014 (ff) \015 (cr) \016 (so) \017 (si)
\020 (dle) \021 (dcl) \022 (dc2) \023 (dc3)
\024 (dc4) \025 (nak) \026 (syn) \027 (etb)
\030 (can) \031 (em) \032 (sub) \033 (esc)
\034 (fs) \035 (gs) \036 (rs) \037 (us)
\040 (sp) \177 (del)
Copyright 1994 Novell, Inc. Page 3
od(1) od(1)
c Bytes are interpreted as characters according to the
current locale specified in LC_CTYPE [see LANG on
environ(5)]. Printable single-byte characters are
printed as usual. Printable multibyte characters are
written in the position of the first byte of the
character, with all further byte positions filled with
``**''. Certain non-printable characters appear as C-
language escapes:
Character Escape Sequence
______________________________
null \0
alert \a
backspace \b
formfeed \f
newline \n
return \r
tab \t
vertical tab \v
All other non-printable characters appear as a sequence
of 3-digit octal numbers, one for each byte. See
``EXAMPLES''.
d f o u x
The qualifiers for these type specifiers correspond in
size to the C language data types of the same names, for
the particular architecture that od is running on.
Compatibility Options
The following options are supported for compatibility. For
the purposes of this description, ``word'' refers to a 16-bit
unit, independent of the word size of the machine; ``long
word'' refers to a 32-bit unit, and ``double long word''
refers to a 64-bit unit.
-b Interpret bytes in octal.
-c Interpret bytes as single-byte characters. Multibyte
characters are treated as non-graphic characters.
Certain non-graphic characters appear as C-language
escapes: null=\0, backspace=\b, form-feed=\f, new-
line=\n, return=\r, tab=\t; others appear as 3-digit
octal numbers. For example:
Copyright 1994 Novell, Inc. Page 4
od(1) od(1)
echo "hello world" | od -c
0000000 h e l l o w o r l d \n
0000014
-D Interpret long words in unsigned decimal.
-d Interpret words in unsigned decimal.
-F Interpret double long words in extended precision.
-f Interpret long words in floating point.
-O Interpret long words in unsigned octal.
-o Interpret words in octal.
-S Interpret long words in signed decimal.
-s Interpret words in signed decimal.
-v Show all data (verbose)
-X Interpret long words in hex.
-x Interpret words in hex.
offset specifies an offset from the beginning of file where
the display will begin. offset is normally interpreted as
octal bytes. If . is appended, offset is interpreted in
decimal. If x is appended, offset is interpreted in
hexadecimal. If offset is omitted, the . and x can still be
used to display decimal and hexadecimal addresses,
respectively. If b is appended, offset is interpreted in
blocks of 512 bytes. If file is omitted, offset must be
preceded by +.
The display continues until an end-of-file is reached.
EXAMPLES
echo "hello world" | od -t c
0000000 h e l l o w o r l d \n
0000014
echo "hello world" | od -t ax1o1d1
0000000 h e l l o sp w o r l d nl
68 65 6c 6c 6f 20 77 6f 72 6c 64 0a
150 145 154 154 157 040 167 157 162 154 144 012
Copyright 1994 Novell, Inc. Page 5
od(1) od(1)
104 101 108 108 111 032 119 111 114 108 100 010
0000014
FILES
/usr/lib/locale/locale/LC_MESSAGES/uxdfm
language-specific message file [See LANG on environ(5).]
NOTICES
If the input ends when any of the type specifiers still
require further bytes to complete a value, the input is
extended with NULL bytes.
od is changed for POSIX2. Application authors should use the
new (first) SYNOPSIS; the old one may no longer be supported
in the future.
Copyright 1994 Novell, Inc. Page 6