Provided by: manpages-posix_2017a-2_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of
       this interface may differ (consult the corresponding Linux  manual  page  for  details  of
       Linux behavior), or the interface may not be implemented on Linux.

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 the Base Definitions volume of POSIX.1‐2017,  Section
       12.2, 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  the  Base  Definitions  volume  of   POSIX.1‐2017,   Section   8.2,
                 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   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‐2017 requires implementations to write strings as defined by the current
       locale.

FUTURE DIRECTIONS

       None.

SEE ALSO

       localedef, nm

       The Base Definitions volume of POSIX.1‐2017, Chapter  8,  Environment  Variables,  Section
       12.2, Utility Syntax Guidelines

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1-2017, Standard for Information Technology -- Portable  Operating  System  Interface
       (POSIX),  The  Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 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 .

       Any  typographical  or  formatting errors that appear in this page are most likely to have
       been introduced during the conversion of the source files to man page  format.  To  report
       such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .