The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### NAME

> strings - find printable strings in files

#### SYNOPSIS

> ``strings` [`-a`] [`-t` format] [`-n` number] [file`...`]`

#### DESCRIPTION

> 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.

> If the first argument is `'-'`, the results are unspecified.

#### OPTIONS

> The strings utility shall conform to XBD Utility Syntax Guidelines, except for the unspecified usage of `'-'`.

> The following options shall be supported:

> -a
>   Scan files in their entirety. If -a is not specified, it is implementation-defined what portion of each file is scanned for strings.
> -n number
>   Specify the minimum string length, where the number argument is a positive decimal integer. The default shall be 4.
> -t format
>   Write each string preceded by its byte offset from the start of the file. The format shall be dependent on the single character used as the format option-argument:
>   `d`
>     The offset shall be written in decimal.
>   `o`
>     The offset shall be written in octal.
>   `x`
>     The offset shall be written in hexadecimal.

#### OPERANDS

> The following operand shall be supported:

> file
>   A pathname of a regular file to be used as input. If no file operand is specified, the strings utility shall read from the standard input.

#### STDIN

> See the INPUT FILES section.

#### INPUT FILES

> The input files named by the utility arguments or the standard input shall be regular files of any format.

#### ENVIRONMENT VARIABLES

> The following environment variables shall affect the execution of strings:

> LANG
>   Provide a default value for the internationalization variables that are unset or null. (See XBD Internationalization Variables for the precedence of internationalization variables used to determine the values of locale categories.)
> LC_ALL
>   If set to a non-empty string value, override the values of all the other internationalization variables.
> LC_CTYPE
>   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 printable strings.
> LC_MESSAGES
>   Determine the locale that should be used to affect the format and contents of diagnostic messages written to standard error.
> NLSPATH
>   [XSI] Determine the location of message catalogs for the processing of LC_MESSAGES.

#### ASYNCHRONOUS EVENTS

> Default.

#### STDOUT

> Strings found shall be written to the standard output, one per line.

> When the -t option is not specified, the format of the output shall be:

>     "%s", <string>

> With the -t o option, the format of the output shall be:

>     "%o %s", <byte offset>, <string>

> With the -t x option, the format of the output shall be:

>     "%x %s", <byte offset>, <string>

> With the -t d option, the format of the output shall be:

>     "%d %s", <byte offset>, <string>

#### STDERR

> The standard error shall be used only for diagnostic messages.

#### OUTPUT FILES

> None.

#### EXTENDED DESCRIPTION

> None.

#### EXIT STATUS

> The following exit values shall be returned:

> 0
>   Successful completion.
> >0
>   An error occurred.

#### CONSEQUENCES OF ERRORS

> Default.

The following sections are informative.

#### APPLICATION USAGE

> 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.

#### EXAMPLES

> None.

#### RATIONALE

> 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. These options are no longer specified by POSIX.1-2008 but may be present in some implementations.

> 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 POSIX.1-2008 requires implementations to write strings as defined by the current locale.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> localedef, nm

> XBD Environment Variables, Utility Syntax Guidelines

#### CHANGE HISTORY

> First released in Issue 4.

#### Issue 6

> This utility is marked as part of the User Portability Utilities option.

> The obsolescent SYNOPSIS is removed.

> The normative text is reworded to avoid use of the term "must" for application requirements.

#### Issue 7

> Austin Group Interpretation 1003.1-2001 #027 is applied, clarifying the behavior if the first argument is `'-'`.

> The strings utility is moved from the User Portability Utilities option to the Base. User Portability Utilities is now an option for interactive utilities.

> SD5-XCU-ERN-97 is applied, updating the SYNOPSIS.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]