The strings utility shall look for printable strings in regular files and
shall write those strings to standard output. A printable string is any
sequence of four (by default) or more printable characters terminated by a
<newline> or NUL character. Additional implementation-defined strings
may be written; see localedef.
The following environment variables shall affect the execution of
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.)
If set to a non-empty string value, override the values of
all the other internationalization variables.
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) and to identify
Determine the locale that should be used to affect the
format and contents of diagnostic messages written to standard error.
Determine the location of message catalogs for the
processing of LC_MESSAGES.
By default the data area (as opposed to the text, "bss", or header
areas) of a binary executable file is scanned. Implementations document which
areas are scanned.
Some historical implementations do not require NUL or <newline>
terminators for strings to permit those languages that do not use NUL as a
string terminator to have their strings written.
Apart from rationalizing the option syntax and slight difficulties with object
and executable binary files, strings is specified to match historical
practice closely. The -a and -n options were introduced to
replace the non-conforming - and -number options.
The -o option historically means different things on different
implementations. Some use it to mean " offset in decimal",
while others use it as " offset in octal". Instead of trying
to decide which way would be least objectionable, the -t option was
added. It was originally named -O to mean "offset", but was
changed to -t to be consistent with od.
The ISO C standard function isprint() is restricted to a domain of
unsigned char. This volume of IEEE Std 1003.1-2001
requires implementations to write strings as defined by the current locale.
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