struct / union in initializer, RFE #901.
[sdcc.git] / sdcc / support / sdbinutils / binutils / doc / strings.1
blobd75501f2b1c2916fc2a66014cd7d26cd21a744f6
1 .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 .    ds C`
42 .    ds C'
43 'br\}
44 .\"
45 .\" Escape single quotes in literal strings from groff's Unicode transform.
46 .ie \n(.g .ds Aq \(aq
47 .el       .ds Aq '
48 .\"
49 .\" If the F register is >0, we'll generate index entries on stderr for
50 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51 .\" entries marked with X<> in POD.  Of course, you'll have to process the
52 .\" output yourself in some meaningful fashion.
53 .\"
54 .\" Avoid warning from groff about undefined register 'F'.
55 .de IX
57 .nr rF 0
58 .if \n(.g .if rF .nr rF 1
59 .if (\n(rF:(\n(.g==0)) \{\
60 .    if \nF \{\
61 .        de IX
62 .        tm Index:\\$1\t\\n%\t"\\$2"
64 .        if !\nF==2 \{\
65 .            nr % 0
66 .            nr F 2
67 .        \}
68 .    \}
69 .\}
70 .rr rF
71 .\"
72 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
73 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
74 .    \" fudge factors for nroff and troff
75 .if n \{\
76 .    ds #H 0
77 .    ds #V .8m
78 .    ds #F .3m
79 .    ds #[ \f1
80 .    ds #] \fP
81 .\}
82 .if t \{\
83 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
84 .    ds #V .6m
85 .    ds #F 0
86 .    ds #[ \&
87 .    ds #] \&
88 .\}
89 .    \" simple accents for nroff and troff
90 .if n \{\
91 .    ds ' \&
92 .    ds ` \&
93 .    ds ^ \&
94 .    ds , \&
95 .    ds ~ ~
96 .    ds /
97 .\}
98 .if t \{\
99 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
100 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
101 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
102 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
103 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
104 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
106 .    \" troff and (daisy-wheel) nroff accents
107 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
108 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
109 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
110 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
111 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
112 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
113 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
114 .ds ae a\h'-(\w'a'u*4/10)'e
115 .ds Ae A\h'-(\w'A'u*4/10)'E
116 .    \" corrections for vroff
117 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
118 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
119 .    \" for low resolution devices (crt and lpr)
120 .if \n(.H>23 .if \n(.V>19 \
122 .    ds : e
123 .    ds 8 ss
124 .    ds o a
125 .    ds d- d\h'-1'\(ga
126 .    ds D- D\h'-1'\(hy
127 .    ds th \o'bp'
128 .    ds Th \o'LP'
129 .    ds ae ae
130 .    ds Ae AE
132 .rm #[ #] #H #V #F C
133 .\" ========================================================================
135 .IX Title "STRINGS 1"
136 .TH STRINGS 1 "2022-02-09" "binutils-2.38" "GNU Development Tools"
137 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
138 .\" way too many mistakes in technical documents.
139 .if n .ad l
141 .SH "NAME"
142 strings \- print the sequences of printable characters in files
143 .SH "SYNOPSIS"
144 .IX Header "SYNOPSIS"
145 strings [\fB\-afovV\fR] [\fB\-\fR\fImin-len\fR]
146         [\fB\-n\fR \fImin-len\fR] [\fB\-\-bytes=\fR\fImin-len\fR]
147         [\fB\-t\fR \fIradix\fR] [\fB\-\-radix=\fR\fIradix\fR]
148         [\fB\-e\fR \fIencoding\fR] [\fB\-\-encoding=\fR\fIencoding\fR]
149         [\fB\-U\fR \fImethod\fR] [\fB\-\-unicode=\fR\fImethod\fR]
150         [\fB\-\fR] [\fB\-\-all\fR] [\fB\-\-print\-file\-name\fR]
151         [\fB\-T\fR \fIbfdname\fR] [\fB\-\-target=\fR\fIbfdname\fR]
152         [\fB\-w\fR] [\fB\-\-include\-all\-whitespace\fR]
153         [\fB\-s\fR] [\fB\-\-output\-separator\fR \fIsep_string\fR]
154         [\fB\-\-help\fR] [\fB\-\-version\fR] \fIfile\fR...
155 .SH "DESCRIPTION"
156 .IX Header "DESCRIPTION"
157 For each \fIfile\fR given, \s-1GNU\s0 \fBstrings\fR prints the
158 printable character sequences that are at least 4 characters long (or
159 the number given with the options below) and are followed by an
160 unprintable character.
162 Depending upon how the strings program was configured it will default
163 to either displaying all the printable sequences that it can find in
164 each file, or only those sequences that are in loadable, initialized
165 data sections.  If the file type is unrecognizable, or if strings is
166 reading from stdin then it will always display all of the printable
167 sequences that it can find.
169 For backwards compatibility any file that occurs after a command-line
170 option of just \fB\-\fR will also be scanned in full, regardless of
171 the presence of any \fB\-d\fR option.
173 \&\fBstrings\fR is mainly useful for determining the contents of
174 non-text files.
175 .SH "OPTIONS"
176 .IX Header "OPTIONS"
177 .IP "\fB\-a\fR" 4
178 .IX Item "-a"
179 .PD 0
180 .IP "\fB\-\-all\fR" 4
181 .IX Item "--all"
182 .IP "\fB\-\fR" 4
183 .IX Item "-"
185 Scan the whole file, regardless of what sections it contains or
186 whether those sections are loaded or initialized.  Normally this is
187 the default behaviour, but strings can be configured so that the
188 \&\fB\-d\fR is the default instead.
190 The \fB\-\fR option is position dependent and forces strings to
191 perform full scans of any file that is mentioned after the \fB\-\fR
192 on the command line, even if the \fB\-d\fR option has been
193 specified.
194 .IP "\fB\-d\fR" 4
195 .IX Item "-d"
196 .PD 0
197 .IP "\fB\-\-data\fR" 4
198 .IX Item "--data"
200 Only print strings from initialized, loaded data sections in the
201 file.  This may reduce the amount of garbage in the output, but it
202 also exposes the strings program to any security flaws that may be
203 present in the \s-1BFD\s0 library used to scan and load sections.  Strings
204 can be configured so that this option is the default behaviour.  In
205 such cases the \fB\-a\fR option can be used to avoid using the \s-1BFD\s0
206 library and instead just print all of the strings found in the file.
207 .IP "\fB\-f\fR" 4
208 .IX Item "-f"
209 .PD 0
210 .IP "\fB\-\-print\-file\-name\fR" 4
211 .IX Item "--print-file-name"
213 Print the name of the file before each string.
214 .IP "\fB\-\-help\fR" 4
215 .IX Item "--help"
216 Print a summary of the program usage on the standard output and exit.
217 .IP "\fB\-\fR\fImin-len\fR" 4
218 .IX Item "-min-len"
219 .PD 0
220 .IP "\fB\-n\fR \fImin-len\fR" 4
221 .IX Item "-n min-len"
222 .IP "\fB\-\-bytes=\fR\fImin-len\fR" 4
223 .IX Item "--bytes=min-len"
225 Print sequences of displayable characters that are at least
226 \&\fImin-len\fR characters long.  If not specified a default minimum
227 length of 4 is used.  The distinction between displayable and
228 non-displayable characters depends upon the setting of the 
229 \&\fB\-e\fR and \fB\-U\fR options.  Sequences are always terminated
230 at control characters such as new-line and carriage-return, but not
231 the tab character.
232 .IP "\fB\-o\fR" 4
233 .IX Item "-o"
234 Like \fB\-t o\fR.  Some other versions of \fBstrings\fR have \fB\-o\fR
235 act like \fB\-t d\fR instead.  Since we can not be compatible with both
236 ways, we simply chose one.
237 .IP "\fB\-t\fR \fIradix\fR" 4
238 .IX Item "-t radix"
239 .PD 0
240 .IP "\fB\-\-radix=\fR\fIradix\fR" 4
241 .IX Item "--radix=radix"
243 Print the offset within the file before each string.  The single
244 character argument specifies the radix of the offset\-\-\-\fBo\fR for
245 octal, \fBx\fR for hexadecimal, or \fBd\fR for decimal.
246 .IP "\fB\-e\fR \fIencoding\fR" 4
247 .IX Item "-e encoding"
248 .PD 0
249 .IP "\fB\-\-encoding=\fR\fIencoding\fR" 4
250 .IX Item "--encoding=encoding"
252 Select the character encoding of the strings that are to be found.
253 Possible values for \fIencoding\fR are: \fBs\fR = single\-7\-bit\-byte
254 characters (\s-1ASCII, ISO 8859,\s0 etc., default), \fBS\fR =
255 single\-8\-bit\-byte characters, \fBb\fR = 16\-bit bigendian, \fBl\fR =
256 16\-bit littleendian, \fBB\fR = 32\-bit bigendian, \fBL\fR = 32\-bit
257 littleendian.  Useful for finding wide character strings. (\fBl\fR
258 and \fBb\fR apply to, for example, Unicode \s-1UTF\-16/UCS\-2\s0 encodings).
259 .IP "\fB\-U\fR \fI[d|i|l|e|x|h]\fR" 4
260 .IX Item "-U [d|i|l|e|x|h]"
261 .PD 0
262 .IP "\fB\-\-unicode=\fR\fI[default|invalid|locale|escape|hex|highlight]\fR" 4
263 .IX Item "--unicode=[default|invalid|locale|escape|hex|highlight]"
265 Controls the display of \s-1UTF\-8\s0 encoded multibyte characters in strings.
266 The default (\fB\-\-unicode=default\fR) is to give them no special
267 treatment, and instead rely upon the setting of the
268 \&\fB\-\-encoding\fR option.  The other values for this option
269 automatically enable \fB\-\-encoding=S\fR.
271 The \fB\-\-unicode=invalid\fR option treats them as non-graphic
272 characters and hence not part of a valid string.  All the remaining
273 options treat them as valid string characters.
275 The \fB\-\-unicode=locale\fR option displays them in the current
276 locale, which may or may not support \s-1UTF\-8\s0 encoding.  The
277 \&\fB\-\-unicode=hex\fR option displays them as hex byte sequences
278 enclosed between \fI<>\fR characters.  The \fB\-\-unicode=escape\fR
279 option displays them as escape sequences (\fI\euxxxx\fR) and the
280 \&\fB\-\-unicode=highlight\fR option displays them as escape sequences
281 highlighted in red (if supported by the output device).  The colouring
282 is intended to draw attention to the presence of unicode sequences
283 where they might not be expected.
284 .IP "\fB\-T\fR \fIbfdname\fR" 4
285 .IX Item "-T bfdname"
286 .PD 0
287 .IP "\fB\-\-target=\fR\fIbfdname\fR" 4
288 .IX Item "--target=bfdname"
290 Specify an object code format other than your system's default format.
291 .IP "\fB\-v\fR" 4
292 .IX Item "-v"
293 .PD 0
294 .IP "\fB\-V\fR" 4
295 .IX Item "-V"
296 .IP "\fB\-\-version\fR" 4
297 .IX Item "--version"
299 Print the program version number on the standard output and exit.
300 .IP "\fB\-w\fR" 4
301 .IX Item "-w"
302 .PD 0
303 .IP "\fB\-\-include\-all\-whitespace\fR" 4
304 .IX Item "--include-all-whitespace"
306 By default tab and space characters are included in the strings that
307 are displayed, but other whitespace characters, such a newlines and
308 carriage returns, are not.  The \fB\-w\fR option changes this so
309 that all whitespace characters are considered to be part of a string.
310 .IP "\fB\-s\fR" 4
311 .IX Item "-s"
312 .PD 0
313 .IP "\fB\-\-output\-separator\fR" 4
314 .IX Item "--output-separator"
316 By default, output strings are delimited by a new-line. This option
317 allows you to supply any string to be used as the output record
318 separator.  Useful with \-\-include\-all\-whitespace where strings
319 may contain new-lines internally.
320 .IP "\fB@\fR\fIfile\fR" 4
321 .IX Item "@file"
322 Read command-line options from \fIfile\fR.  The options read are
323 inserted in place of the original @\fIfile\fR option.  If \fIfile\fR
324 does not exist, or cannot be read, then the option will be treated
325 literally, and not removed.
327 Options in \fIfile\fR are separated by whitespace.  A whitespace
328 character may be included in an option by surrounding the entire
329 option in either single or double quotes.  Any character (including a
330 backslash) may be included by prefixing the character to be included
331 with a backslash.  The \fIfile\fR may itself contain additional
332 @\fIfile\fR options; any such options will be processed recursively.
333 .SH "SEE ALSO"
334 .IX Header "SEE ALSO"
335 \&\fBar\fR\|(1), \fBnm\fR\|(1), \fBobjdump\fR\|(1), \fBranlib\fR\|(1), \fBreadelf\fR\|(1)
336 and the Info entries for \fIbinutils\fR.
337 .SH "COPYRIGHT"
338 .IX Header "COPYRIGHT"
339 Copyright (c) 1991\-2022 Free Software Foundation, Inc.
341 Permission is granted to copy, distribute and/or modify this document
342 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
343 or any later version published by the Free Software Foundation;
344 with no Invariant Sections, with no Front-Cover Texts, and with no
345 Back-Cover Texts.  A copy of the license is included in the
346 section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".