summaryrefslogtreecommitdiffstats
path: root/man1p/od.1p
diff options
context:
space:
mode:
Diffstat (limited to 'man1p/od.1p')
-rw-r--r--man1p/od.1p642
1 files changed, 642 insertions, 0 deletions
diff --git a/man1p/od.1p b/man1p/od.1p
new file mode 100644
index 000000000..dcd16d6b8
--- /dev/null
+++ b/man1p/od.1p
@@ -0,0 +1,642 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "OD" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" od
+.SH NAME
+od \- dump files in various formats
+.SH SYNOPSIS
+.LP
+\fBod\fP \fB[\fP\fB-v\fP\fB][\fP\fB-A\fP \fIaddress_base\fP\fB][\fP\fB-j\fP
+\fIskip\fP\fB][\fP\fB-N\fP
+\fIcount\fP\fB][\fP\fB-t\fP \fItype_string\fP\fB]\fP\fB...
+.br
+\ \ \ \ \ \ \fP \fB[\fP\fIfile\fP\fB...\fP\fB]\fP\fB
+.br
+.sp
+\fP
+.LP
+\fBod\fP \fB[\fP\fB-bcdosx\fP\fB][\fP\fIfile\fP\fB]
+[[\fP\fB+\fP\fB]\fP\fIoffset\fP\fB[\fP\fB.\fP\fB][\fP\fBb\fP\fB]]\fP\fB\fP
+\fB
+.br
+\fP
+.SH DESCRIPTION
+.LP
+The \fIod\fP utility shall write the contents of its input files to
+standard output in a user-specified format.
+.SH OPTIONS
+.LP
+The \fIod\fP utility shall conform to the Base Definitions volume
+of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines,
+except that the order of presentation of the
+\fB-t\fP options \ and the \fB-bcdosx\fP options
+is significant.
+.LP
+The following options shall be supported:
+.TP 7
+\fB-A\ \fP \fIaddress_base\fP
+.sp
+Specify the input offset base. See the EXTENDED DESCRIPTION section.
+The application shall ensure that the \fIaddress_base\fP
+option-argument is a character. The characters \fB'd'\fP , \fB'o'\fP
+, and \fB'x'\fP specify that the offset base shall be
+written in decimal, octal, or hexadecimal, respectively. The character
+\fB'n'\fP specifies that the offset shall not be
+written.
+.TP 7
+\fB-b\fP
+Interpret bytes in octal. This shall be equivalent to \fB-t\ o1\fP.
+.TP 7
+\fB-c\fP
+Interpret bytes as characters specified by the current setting of
+the \fILC_CTYPE\fP category. Certain non-graphic characters
+appear as C escapes: \fB"NUL=\\0"\fP , \fB"BS=\\b"\fP , \fB"FF=\\f"\fP
+, \fB"NL=\\n"\fP , \fB"CR=\\r"\fP ,
+\fB"HT=\\t"\fP ; others appear as 3-digit octal numbers.
+.TP 7
+\fB-d\fP
+Interpret \fIword\fPs (two-byte units) in unsigned decimal. This shall
+be equivalent to \fB-t\ u2\fP.
+.TP 7
+\fB-j\ \fP \fIskip\fP
+Jump over \fIskip\fP bytes from the beginning of the input. The \fIod\fP
+utility shall read or seek past the first
+\fIskip\fP bytes in the concatenated input files. If the combined
+input is not at least \fIskip\fP bytes long, the \fIod\fP
+utility shall write a diagnostic message to standard error and exit
+with a non-zero exit status.
+.LP
+By default, the \fIskip\fP option-argument shall be interpreted as
+a decimal number. With a leading 0x or 0X, the offset shall
+be interpreted as a hexadecimal number; otherwise, with a leading
+\fB'0'\fP , the offset shall be interpreted as an octal
+number. Appending the character \fB'b'\fP , \fB'k'\fP , or \fB'm'\fP
+to offset shall cause it to be interpreted as a
+multiple of 512, 1024, or 1048576 bytes, respectively. If the \fIskip\fP
+number is hexadecimal, any appended \fB'b'\fP shall be
+considered to be the final hexadecimal digit.
+.TP 7
+\fB-N\ \fP \fIcount\fP
+Format no more than \fIcount\fP bytes of input. By default, \fIcount\fP
+shall be interpreted as a decimal number. With a
+leading 0x or 0X, \fIcount\fP shall be interpreted as a hexadecimal
+number; otherwise, with a leading \fB'0'\fP , it shall be
+interpreted as an octal number. If \fIcount\fP bytes of input (after
+successfully skipping, if \fB-j\fP \fIskip\fP is specified)
+are not available, it shall not be considered an error; the \fIod\fP
+utility shall format the input that is available.
+.TP 7
+\fB-o\fP
+Interpret \fIword\fPs (two-byte units) in octal. This shall be equivalent
+to \fB-t\ o2\fP.
+.TP 7
+\fB-s\fP
+Interpret \fIword\fPs (two-byte units) in signed decimal. This shall
+be equivalent to \fB-t\ d2\fP.
+.TP 7
+\fB-t\ \fP \fItype_string\fP
+.sp
+Specify one or more output types. See the EXTENDED DESCRIPTION section.
+The application shall ensure that the \fItype_string\fP
+option-argument is a string specifying the types to be used when writing
+the input data. The string shall consist of the type
+specification characters \fBa\fP , \fBc\fP , \fBd\fP , \fBf\fP , \fBo\fP
+, \fBu\fP , and \fBx\fP , specifying
+named character, character, signed decimal, floating point, octal,
+unsigned decimal, and hexadecimal, respectively. The type
+specification characters \fBd\fP , \fBf\fP , \fBo\fP , \fBu\fP , and
+\fBx\fP can be followed by an optional unsigned
+decimal integer that specifies the number of bytes to be transformed
+by each instance of the output type. The type specification
+character \fBf\fP can be followed by an optional \fBF\fP , \fBD\fP
+, or \fBL\fP indicating that the conversion should
+be applied to an item of type \fBfloat\fP, \fBdouble\fP, or \fBlong
+double\fP, respectively. The type specification characters
+\fBd\fP , \fBo\fP , \fBu\fP , and \fBx\fP can be followed by an optional
+\fBC\fP , \fBS\fP , \fBI\fP , or
+\fBL\fP indicating that the conversion should be applied to an item
+of type \fBchar\fP, \fBshort\fP, \fBint\fP, or
+\fBlong\fP, respectively. Multiple types can be concatenated within
+the same \fItype_string\fP and multiple \fB-t\fP options can
+be specified. Output lines shall be written for each type specified
+in the order in which the type specification characters are
+specified.
+.TP 7
+\fB-v\fP
+Write all input data. Without the \fB-v\fP option, any number of groups
+of output lines, which would be identical to the
+immediately preceding group of output lines (except for the byte offsets),
+shall be replaced with a line containing only an
+asterisk ( \fB'*'\fP ).
+.TP 7
+\fB-x\fP
+Interpret \fIword\fPs (two-byte units) in hexadecimal. This shall
+be equivalent to \fB-t\ x2\fP.
+.sp
+.LP
+Multiple types can be specified by using multiple \fB-bcdostx\fP options.
+Output lines are written for each type specified in the
+order in which the types are specified.
+.SH OPERANDS
+.LP
+The following operands shall be supported:
+.TP 7
+\fIfile\fP
+A pathname of a file to be read. If no \fIfile\fP operands are specified,
+the standard input shall be used.
+.LP
+If there are no more than two operands, none of the \fB-A\fP, \fB-j\fP,
+\fB-N\fP, or \fB-t\fP options is specified, and
+either of the following is true: the first character of the last operand
+is a plus sign ( \fB'+'\fP ), or there are two operands
+and the first character of the last operand is numeric; \ the last
+operand shall be interpreted as an offset operand on
+XSI-conformant systems. Under these conditions, the results are
+unspecified on systems that are not XSI-conformant systems.
+.TP 7
+\fB[+]\fP\fIoffset\fP\fB[.][b]\fP
+The \fIoffset\fP operand specifies the offset in the file where dumping
+is to commence. This operand is normally interpreted as
+octal bytes. If \fB'.'\fP is appended, the offset shall be interpreted
+in decimal. If \fB'b'\fP is appended, the offset shall
+be interpreted in units of 512 bytes.
+.sp
+.SH STDIN
+.LP
+The standard input shall be used only if no \fIfile\fP operands are
+specified. See the INPUT FILES section.
+.SH INPUT FILES
+.LP
+The input files can be any file type.
+.SH ENVIRONMENT VARIABLES
+.LP
+The following environment variables shall affect the execution of
+\fIod\fP:
+.TP 7
+\fILANG\fP
+Provide a default value for the internationalization variables that
+are unset or null. (See the Base Definitions volume of
+IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables
+for
+the precedence of internationalization variables used to determine
+the values of locale categories.)
+.TP 7
+\fILC_ALL\fP
+If set to a non-empty string value, override the values of all the
+other internationalization variables.
+.TP 7
+\fILC_CTYPE\fP
+Determine the locale for the interpretation of sequences of bytes
+of text data as characters (for example, single-byte as
+opposed to multi-byte characters in arguments and input files).
+.TP 7
+\fILC_MESSAGES\fP
+Determine the locale that should be used to affect the format and
+contents of diagnostic messages written to standard
+error.
+.TP 7
+\fILC_NUMERIC\fP
+.sp
+Determine the locale for selecting the radix character used when writing
+floating-point formatted output.
+.TP 7
+\fINLSPATH\fP
+Determine the location of message catalogs for the processing of \fILC_MESSAGES
+\&.\fP
+.sp
+.SH ASYNCHRONOUS EVENTS
+.LP
+Default.
+.SH STDOUT
+.LP
+See the EXTENDED DESCRIPTION section.
+.SH STDERR
+.LP
+The standard error shall be used only for diagnostic messages.
+.SH OUTPUT FILES
+.LP
+None.
+.SH EXTENDED DESCRIPTION
+.LP
+The \fIod\fP utility shall copy sequentially each input file to standard
+output, transforming the input data according to the
+output types specified by the \fB-t\fP option \ or the \fB-bcdosx\fP
+options. If no output type is specified, the default output shall
+be as if \fB-t\ oS\fP had been
+specified.
+.LP
+The number of bytes transformed by the output type specifier \fBc\fP
+may be variable depending on the \fILC_CTYPE\fP
+category.
+.LP
+The default number of bytes transformed by output type specifiers
+\fBd\fP , \fBf\fP , \fBo\fP , \fBu\fP , and
+\fBx\fP corresponds to the various C-language types as follows. If
+the \fIc99\fP compiler
+is present on the system, these specifiers shall correspond to the
+sizes used by default in that compiler. Otherwise, these sizes
+may vary among systems that conform to IEEE\ Std\ 1003.1-2001.
+.IP " *" 3
+For the type specifier characters \fBd\fP , \fBo\fP , \fBu\fP , and
+\fBx\fP , the default number of bytes shall
+correspond to the size of the underlying implementation's basic integer
+type. For these specifier characters, the implementation
+shall support values of the optional number of bytes to be converted
+corresponding to the number of bytes in the C-language types
+\fBchar\fP, \fBshort\fP, \fBint\fP, and \fBlong\fP. These numbers
+can also be specified by an application as the characters
+\fB'C'\fP , \fB'S'\fP , \fB'I'\fP , and \fB'L'\fP , respectively.
+The implementation shall also support the values 1,
+2, 4, and 8, even if it provides no C-Language types of those sizes.
+The implementation shall support the decimal value
+corresponding to the C-language type \fBlong long\fP. The byte order
+used when interpreting numeric values is
+implementation-defined, but shall correspond to the order in which
+a constant of the corresponding type is stored in memory on the
+system.
+.LP
+.IP " *" 3
+For the type specifier character \fBf\fP , the default number of bytes
+shall correspond to the number of bytes in the
+underlying implementation's basic double precision floating-point
+data type. The implementation shall support values of the
+optional number of bytes to be converted corresponding to the number
+of bytes in the C-language types \fBfloat,\fP \fBdouble\fP,
+and \fBlong double\fP. These numbers can also be specified by an application
+as the characters \fB'F'\fP , \fB'D'\fP , and
+\fB'L'\fP , respectively.
+.LP
+.LP
+The type specifier character \fBa\fP specifies that bytes shall be
+interpreted as named characters from the International
+Reference Version (IRV) of the ISO/IEC\ 646:1991 standard. Only the
+least significant seven bits of each byte shall be used for
+this type specification. Bytes with the values listed in the following
+table shall be written using the corresponding names for
+those characters.
+.br
+.sp
+.ce 1
+\fBTable: Named Characters in \fIod\fP\fP
+.TS C
+center; l2 l2 l2 l2 l2 l2 l2 l.
+\fBValue\fP \fBName\fP \fBValue\fP \fBName\fP \fBValue\fP \fBName\fP \fBValue\fP \fBName\fP
+\\000 \fBnul\fP \\001 \fBsoh\fP \\002 \fBstx\fP \\003 \fBetx\fP
+\\004 \fBeot\fP \\005 \fBenq\fP \\006 \fBack\fP \\007 \fBbel\fP
+\\010 \fBbs\fP \\011 \fBht\fP \\012 \fBlf or nl\fP \\013 \fBvt\fP
+\\014 \fBff\fP \\015 \fBcr\fP \\016 \fBso\fP \\017 \fBsi\fP
+\\020 \fBdle\fP \\021 \fBdc1\fP \\022 \fBdc2\fP \\023 \fBdc3\fP
+\\024 \fBdc4\fP \\025 \fBnak\fP \\026 \fBsyn\fP \\027 \fBetb\fP
+\\030 \fBcan\fP \\031 \fBem\fP \\032 \fBsub\fP \\033 \fBesc\fP
+\\034 \fBfs\fP \\035 \fBgs\fP \\036 \fBrs\fP \\037 \fBus\fP
+\\040 \fBsp\fP \\177 \fBdel\fP \ \fB\ \fP \ \fB\ \fP
+.TE
+.TP 7
+\fBNote:\fP
+The \fB"\\012"\fP value may be written either as \fBlf\fP or \fBnl\fP.
+.sp
+.LP
+The type specifier character \fBc\fP specifies that bytes shall be
+interpreted as characters specified by the current setting
+of the \fILC_CTYPE\fP locale category. Characters listed in the table
+in the Base Definitions volume of
+IEEE\ Std\ 1003.1-2001, Chapter 5, File Format Notation ( \fB'\\\\'\fP
+,
+\fB'\\a'\fP , \fB'\\b'\fP , \fB'\\f'\fP , \fB'\\n'\fP , \fB'\\r'\fP
+, \fB'\\t'\fP , \fB'\\v'\fP ) shall be written as
+the corresponding escape sequences, except that backslash shall be
+written as a single backslash and a NUL shall be written as
+\fB'\\0'\fP . Other non-printable characters shall be written as one
+three-digit octal number for each byte in the character. If
+the size of a byte on the system is greater than nine bits, the format
+used for non-printable characters is implementation-defined.
+Printable multi-byte characters shall be written in the area corresponding
+to the first byte of the character; the two-character
+sequence \fB"**"\fP shall be written in the area corresponding to
+each remaining byte in the character, as an indication that
+the character is continued. When either the \fB-j\fP \fIskip\fP or
+\fB-N\fP \fIcount\fP option is specified along with the
+\fBc\fP type specifier, and this results in an attempt to start or
+finish in the middle of a multi-byte character, the result is
+implementation-defined.
+.LP
+The input data shall be manipulated in blocks, where a block is defined
+as a multiple of the least common multiple of the number
+of bytes transformed by the specified output types. If the least common
+multiple is greater than 16, the results are unspecified.
+Each input block shall be written as transformed by each output type,
+one per written line, in the order that the output types were
+specified. If the input block size is larger than the number of bytes
+transformed by the output type, the output type shall
+sequentially transform the parts of the input block, and the output
+from each of the transformations shall be separated by one or
+more <blank>s.
+.LP
+If, as a result of the specification of the \fB-N\fP option or end-of-file
+being reached on the last input file, input data
+only partially satisfies an output type, the input shall be extended
+sufficiently with null bytes to write the last byte of the
+input.
+.LP
+Unless \fB-A\ n\fP is specified, the first output line produced for
+each input block shall be preceded by the input offset,
+cumulative across input files, of the next byte to be written. The
+format of the input offset is unspecified; however, it shall not
+contain any <blank>s, shall start at the first character of the output
+line, and shall be followed by one or more
+<blank>s. In addition, the offset of the byte following the last byte
+written shall be written after all the input data has
+been processed, but shall not be followed by any <blank>s.
+.LP
+If no \fB-A\fP option is specified, the input offset base is unspecified.
+.SH EXIT STATUS
+.LP
+The following exit values shall be returned:
+.TP 7
+\ 0
+All input files were processed successfully.
+.TP 7
+>0
+An error occurred.
+.sp
+.SH CONSEQUENCES OF ERRORS
+.LP
+Default.
+.LP
+\fIThe following sections are informative.\fP
+.SH APPLICATION USAGE
+.LP
+XSI-conformant applications are warned not to use filenames starting
+with \fB'+'\fP or a first operand starting with a
+numeric character so that the old functionality can be maintained
+by implementations, unless they specify one of the \fB-A\fP,
+\fB-j\fP, or \fB-N\fP options. To guarantee that one of these filenames
+is always interpreted as a filename, an application could
+always specify the address base format with the \fB-A\fP option.
+.SH EXAMPLES
+.LP
+If a file containing 128 bytes with decimal values zero to 127, in
+increasing order, is supplied as standard input to the
+command:
+.sp
+.RS
+.nf
+
+\fBod -A d -t a
+\fP
+.fi
+.RE
+.LP
+on an implementation using an input block size of 16 bytes, the standard
+output, independent of the current locale setting,
+would be similar to:
+.sp
+.RS
+.nf
+
+\fB0000000 nul soh stx etx eot enq ack bel bs ht nl vt ff cr so si
+0000016 dle dc1 dc2 dc3 dc4 nak syn etb can em sub esc fs gs rs us
+0000032 sp ! " # $ % & ' ( ) * + , - . /
+0000048 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+0000064 @ A B C D E F G H I J K L M N O
+0000080 P Q R S T U V W X Y Z [ \\ ] ^ _
+0000096 ` a b c d e f g h i j k l m n o
+0000112 p q r s t u v w x y z { | } ~ del
+0000128
+\fP
+.fi
+.RE
+.LP
+Note that this volume of IEEE\ Std\ 1003.1-2001 allows \fBnl\fP or
+\fBlf\fP to be used as the name for the
+ISO/IEC\ 646:1991 standard IRV character with decimal value 10. The
+IRV names this character \fBlf\fP (line feed), but
+traditional implementations have referred to this character as newline
+( \fBnl\fP) and the POSIX locale character set symbolic
+name for the corresponding character is a <newline>.
+.LP
+The command:
+.sp
+.RS
+.nf
+
+\fBod -A o -t o2x2x -N 18
+\fP
+.fi
+.RE
+.LP
+on a system with 32-bit words and an implementation using an input
+block size of 16 bytes could write 18 bytes in approximately
+the following format:
+.sp
+.RS
+.nf
+
+\fB0000000 032056 031440 041123 042040 052516 044530 020043 031464
+ 342e 3320 4253 4420 554e 4958 2023 3334
+ 342e3320 42534420 554e4958 20233334
+0000020 032472
+ 353a
+ 353a0000
+0000022
+\fP
+.fi
+.RE
+.LP
+The command:
+.sp
+.RS
+.nf
+
+\fBod -A d -t f -t o4 -t x4 -N 24 -j 0x15
+\fP
+.fi
+.RE
+.LP
+on a system with 64-bit doubles (for example, IEEE\ Std\ 754-1985
+double precision floating-point format) would skip 21
+bytes of input data and then write 24 bytes in approximately the following
+format:
+.sp
+.RS
+.nf
+
+\fB0000000 1.00000000000000e+00 1.57350000000000e+01
+ 07774000000 00000000000 10013674121 35341217270
+ 3ff00000 00000000 402f3851 eb851eb8
+0000016 1.40668230000000e+02
+ 10030312542 04370303230
+ 40619562 23e18698
+0000024
+\fP
+.fi
+.RE
+.SH RATIONALE
+.LP
+The \fIod\fP utility went through several names in early proposals,
+including \fIhd\fP, \fIxd\fP, and most recently
+\fIhexdump\fP. There were several objections to all of these based
+on the following reasons:
+.IP " *" 3
+The \fIhd\fP and \fIxd\fP names conflicted with historical utilities
+that behaved differently.
+.LP
+.IP " *" 3
+The \fIhexdump\fP description was much more complex than needed for
+a simple dump utility.
+.LP
+.IP " *" 3
+The \fIod\fP utility has been available on all historical implementations
+and there was no need to create a new name for a
+utility so similar to the historical \fIod\fP utility.
+.LP
+.LP
+The original reasons for not standardizing historical \fIod\fP were
+also fairly widespread. Those reasons are given below along
+with rationale explaining why the standard developers believe that
+this version does not suffer from the indicated problem:
+.IP " *" 3
+The BSD and System V versions of \fIod\fP have diverged, and the intersection
+of features provided by both does not meet the
+needs of the user community. In fact, the System V version only provides
+a mechanism for dumping octal bytes and \fBshort\fPs,
+signed and unsigned decimal \fBshort\fPs, hexadecimal \fBshort\fPs,
+and ASCII characters. BSD added the ability to dump
+\fBfloat\fPs, \fBdouble\fPs, named ASCII characters, and octal, signed
+decimal, unsigned decimal, and hexadecimal \fBlong\fPs.
+The version presented here provides more normalized forms for dumping
+bytes, \fBshort\fPs, \fBint\fPs, and \fBlong\fPs in octal,
+signed decimal, unsigned decimal, and hexadecimal; \fBfloat\fP, \fBdouble\fP,
+and \fBlong double\fP; and named ASCII as well as
+current locale characters.
+.LP
+.IP " *" 3
+It would not be possible to come up with a compatible superset of
+the BSD and System V flags that met the requirements of the
+standard developers. The historical default \fIod\fP output is the
+specified default output of this utility. None of the option
+letters chosen for this version of \fIod\fP conflict with any of the
+options to historical versions of \fIod\fP.
+.LP
+.IP " *" 3
+On systems with different sizes for \fBshort\fP, \fBint\fP, and \fBlong\fP,
+there was no way to ask for dumps of \fBint\fPs,
+even in the BSD version. Because of the way options are named, the
+name space could not be extended to solve these problems. This
+is why the \fB-t\fP option was added (with type specifiers more closely
+matched to the \fIprintf\fP() formats used in the rest of this volume
+of IEEE\ Std\ 1003.1-2001) and the
+optional field sizes were added to the \fBd\fP , \fBf\fP , \fBo\fP
+, \fBu\fP , and \fBx\fP type specifiers. It is
+also one of the reasons why the historical practice was not mandated
+as a required obsolescent form of \fIod\fP. (Although the old
+versions of \fIod\fP are not listed as an obsolescent form, implementations
+are urged to continue to recognize the older forms for
+several more years.) The \fBa\fP , \fBc\fP , \fBf\fP , \fBo\fP , and
+\fBx\fP types match the meaning of the
+corresponding format characters in the historical implementations
+of \fIod\fP except for the default sizes of the fields
+converted. The \fBd\fP format is signed in this volume of IEEE\ Std\ 1003.1-2001
+to match the \fIprintf\fP() notation. (Historical versions of \fIod\fP
+used \fBd\fP as a synonym for
+\fBu\fP in this version. The System V implementation uses \fBs\fP
+for signed decimal; BSD uses \fBi\fP for signed decimal
+and \fBs\fP for null-terminated strings.) Other than \fBd\fP and \fBu\fP
+, all of the type specifiers match format
+characters in the historical BSD version of \fBod\fP.
+.LP
+The sizes of the C-language types \fBchar\fP, \fBshort\fP, \fBint\fP,
+\fBlong\fP, \fBfloat\fP, \fBdouble\fP, and \fBlong
+double\fP are used even though it is recognized that there may be
+zero or more than one compiler for the C language on an
+implementation and that they may use different sizes for some of these
+types. (For example, one compiler might use 2 bytes
+\fBshort\fPs, 2 bytes \fBint\fPs, and 4 bytes \fBlong\fPs, while another
+compiler (or an option to the same compiler) uses 2
+bytes \fBshort\fPs, 4 bytes \fBint\fPs, and 4 bytes \fBlong\fPs.)
+Nonetheless, there has to be a basic size known by the
+implementation for these types, corresponding to the values reported
+by invocations of the \fIgetconf\fP utility when called with \fIsystem_var\fP
+operands {UCHAR_MAX}, {USHORT_MAX},
+{UINT_MAX}, and {ULONG_MAX} for the types \fBchar\fP, \fBshort\fP,
+\fBint\fP, and \fBlong\fP, respectively. There are similar
+constants required by the ISO\ C standard, but not required by the
+System Interfaces volume of IEEE\ Std\ 1003.1-2001
+or this volume of IEEE\ Std\ 1003.1-2001. They are {FLT_MANT_DIG},
+{DBL_MANT_DIG}, and {LDBL_MANT_DIG} for the types
+\fBfloat\fP, \fBdouble\fP, and \fBlong double\fP, respectively. If
+the optional \fIc99\fP
+utility is provided by the implementation and used as specified by
+this volume of IEEE\ Std\ 1003.1-2001, these are the
+sizes that would be provided. If an option is used that specifies
+different sizes for these types, there is no guarantee that the
+\fIod\fP utility is able to interpret binary data output by such a
+program correctly.
+.LP
+This volume of IEEE\ Std\ 1003.1-2001 requires that the numeric values
+of these lengths be recognized by the \fIod\fP
+utility and that symbolic forms also be recognized. Thus, a conforming
+application can always look at an array of \fBunsigned
+long\fP data elements using \fIod\fP \fB-t\fP \fIuL\fP.
+.LP
+.IP " *" 3
+The method of specifying the format for the address field based on
+specifying a starting offset in a file unnecessarily tied the
+two together. The \fB-A\fP option now specifies the address base and
+the \fB-S\fP option specifies a starting offset.
+.LP
+.IP " *" 3
+It would be difficult to break the dependence on U.S. ASCII to achieve
+an internationalized utility. It does not seem to be any
+harder for \fIod\fP to dump characters in the current locale than
+it is for the \fIed\fP or \fIsed\fP \fBl\fP commands. The \fBc\fP
+type specifier does this without difficulty and is
+completely compatible with the historical implementations of the \fBc\fP
+format character when the current locale uses a superset
+of the ISO/IEC\ 646:1991 standard as a codeset. The \fBa\fP type specifier
+(from the BSD \fBa\fP format character) was left
+as a portable means to dump ASCII (or more correctly ISO/IEC\ 646:1991
+standard (IRV)) so that headers produced by \fIpax\fP could be deciphered
+even on systems that do not use the ISO/IEC\ 646:1991 standard as
+a
+subset of their base codeset.
+.LP
+.LP
+The use of \fB"**"\fP as an indication of continuation of a multi-byte
+character in \fBc\fP specifier output was chosen
+based on seeing an implementation that uses this method. The continuation
+bytes have to be marked in a way that is not ambiguous
+with another single-byte or multi-byte character.
+.LP
+An early proposal used \fB-S\fP and \fB-n\fP, respectively, for the
+\fB-j\fP and \fB-N\fP options eventually selected. These
+were changed to avoid conflicts with historical implementations.
+.LP
+The original standard specified \fB-t o2\fP as the default when no
+output type was given. This was changed to \fB-t oS\fP (the
+length of a \fBshort\fP) to accommodate a supercomputer implementation
+that historically used 64 bits as its default (and that
+defined shorts as 64 bits). This change should not affect conforming
+applications. The requirement to support lengths of 1, 2, and
+4 was added at the same time to address an historical implementation
+that had no two-byte data types in its C compiler.
+.LP
+The use of a basic integer data type is intended to allow the implementation
+to choose a word size commonly used by applications
+on that architecture.
+.SH FUTURE DIRECTIONS
+.LP
+All option and operand interfaces marked as extensions may be withdrawn
+in a future version.
+.SH SEE ALSO
+.LP
+\fIc99\fP , \fIsed\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .