aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info932
1 files changed, 517 insertions, 415 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 06b8e119..6647e1e3 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -196,6 +196,7 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
* Getline Notes:: Important things to know about
`getline'.
* Getline Summary:: Summary of `getline' Variants.
+* Read Timeout:: Reading input with a timeout.
* Command line directories:: What happens if you put a directory on the
command line.
* Print:: The `print' statement.
@@ -2629,6 +2630,10 @@ used by regular users.
milliseconds. On systems that do not support the `usleep()' system
call, the value is rounded up to an integral number of seconds.
+`GAWK_READ_TIMEOUT'
+ Specifies the time, in milliseconds, for `gawk' to wait for input
+ before returning with an error. *Note Read Timeout::.
+
The environment variables in the following list are meant for use by
the `gawk' developers for testing and tuning. They are subject to
change. The variables are:
@@ -3626,6 +3631,8 @@ have to be named on the `awk' command line (*note Getline::).
* Multiple Line:: Reading multi-line records.
* Getline:: Reading files under explicit program control
using the `getline' function.
+* Read Timeout:: Reading input with a timeout.
+
* Command line directories:: What happens if you put a directory on the
command line.
@@ -4813,7 +4820,7 @@ feature of `RS' does not apply. It does apply to the default field
separator of a single space: `FS = " "'.

-File: gawk.info, Node: Getline, Next: Command line directories, Prev: Multiple Line, Up: Reading Files
+File: gawk.info, Node: Getline, Next: Read Timeout, Prev: Multiple Line, Up: Reading Files
4.9 Explicit Input with `getline'
=================================
@@ -5238,9 +5245,101 @@ VAR
Table 4.1: getline Variants and What They Set

-File: gawk.info, Node: Command line directories, Prev: Getline, Up: Reading Files
+File: gawk.info, Node: Read Timeout, Next: Command line directories, Prev: Getline, Up: Reading Files
+
+4.10 Reading Input With A Timeout
+=================================
+
+You may specify a timeout in milliseconds for reading input from a
+terminal, pipe or two-way communication including, TCP/IP sockets. This
+can be done on a per input, command or connection basis, by setting a
+special element in the `PROCINFO' array:
+
+ PROCINFO["input_name", "READ_TIMEOUT"] = TIMEOUT IN MILLISECONDS
+
+ When set, this will cause `gawk' to time out and return failure if
+no data is available to read within the specified timeout period. For
+example, a TCP client can decide to give up on receiving any response
+from the server after a certain amount of time:
+
+ Service = "/inet/tcp/0/localhost/daytime"
+ PROCINFO[Service, "READ_TIMEOUT"] = 100
+ if ((Service |& getline) > 0)
+ print $0
+ else if (ERRNO != "")
+ print ERRNO
+
+ Here is how to read interactively from the terminal(1) without
+waiting for more than five seconds:
+
+ PROCINFO["/dev/stdin", "READ_TIMEOUT"] = 5000
+ while ((getline < "/dev/stdin") > 0)
+ print $0
+
+ `gawk' will terminate the read operation if input does not arrive
+after waiting for the timeout period, return failure and set the
+`ERRNO' variable to an appropriate string value. A negative or zero
+value for the timeout is the same as specifying no timeout at all.
+
+ A timeout can also be set for reading from the terminal in the
+implicit loop that reads input records and matches them against
+patterns, like so:
+
+ $ gawk 'BEGIN { PROCINFO["-", "READ_TIMEOUT"] = 5000 }
+ > { print "You entered: " $0 }'
+ gawk
+ -| You entered: gawk
+
+ In this case, failure to respond within five seconds results in the
+following error message:
+
+ error--> gawk: cmd. line:2: (FILENAME=- FNR=1) fatal: error reading input file `-': Connection timed out
+
+ The timeout can be set or changed at any time, and will take effect
+on the next attempt to read from the input device. In the following
+example, we start with a timeout value of one second, and progressively
+reduce it by one-tenth of a second until we wait indefinitely for the
+input to arrive:
+
+ PROCINFO[Service, "READ_TIMEOUT"] = 1000
+ while ((Service |& getline) > 0) {
+ print $0
+ PROCINFO[S, "READ_TIMEOUT"] -= 100
+ }
+
+ NOTE: You should not assume that the read operation will block
+ exactly after the tenth record has been printed. It is possible
+ that `gawk' will read and buffer more than one record's worth of
+ data the first time. Because of this, changing the value of
+ timeout like in the above example is not very useful.
+
+ If the `PROCINFO' element is not present and the environment
+variable `GAWK_READ_TIMEOUT' exists, `gawk' uses its value to
+initialize the timeout value. The exclusive use of the environment
+variable to specify timeout has the disadvantage of not being able to
+control it on a per command or connection basis.
+
+ `gawk' considers a timeout event to be an error even though the
+attempt to read from the underlying device may succeed in a later
+attempt. This is a limitation, and it also means that you cannot use
+this to multiplex input from two or more sources.
+
+ Assigning a timeout value prevents read operations from blocking
+indefinitely. But bear in mind that there are other ways `gawk' can
+stall waiting for an input device to be ready. A network client can
+sometimes take a long time to establish a connection before it can
+start reading any data, or the attempt to open a FIFO special file for
+reading can block indefinitely until some other process opens it for
+writing.
+
+ ---------- Footnotes ----------
+
+ (1) This assumes that standard input is the keyboard
+
+
+File: gawk.info, Node: Command line directories, Prev: Read Timeout, Up: Reading Files
-4.10 Directories On The Command Line
+4.11 Directories On The Command Line
====================================
According to the POSIX standard, files named on the `awk' command line
@@ -27290,6 +27389,7 @@ Index
* time, managing: Gettimeofday Function.
(line 6)
* time, retrieving: Time Functions. (line 17)
+* timeout, reading input: Read Timeout. (line 6)
* timestamps: Time Functions. (line 6)
* timestamps, converting dates to: Time Functions. (line 74)
* timestamps, formatted: Gettimeofday Function.
@@ -27501,417 +27601,419 @@ Index

Tag Table:
Node: Top1346
-Node: Foreword30346
-Node: Preface34691
-Ref: Preface-Footnote-137744
-Ref: Preface-Footnote-237850
-Node: History38082
-Node: Names40473
-Ref: Names-Footnote-141950
-Node: This Manual42022
-Ref: This Manual-Footnote-146960
-Node: Conventions47060
-Node: Manual History49194
-Ref: Manual History-Footnote-152464
-Ref: Manual History-Footnote-252505
-Node: How To Contribute52579
-Node: Acknowledgments53723
-Node: Getting Started58054
-Node: Running gawk60433
-Node: One-shot61619
-Node: Read Terminal62844
-Ref: Read Terminal-Footnote-164494
-Ref: Read Terminal-Footnote-264770
-Node: Long64941
-Node: Executable Scripts66317
-Ref: Executable Scripts-Footnote-168186
-Ref: Executable Scripts-Footnote-268288
-Node: Comments68739
-Node: Quoting71206
-Node: DOS Quoting75829
-Node: Sample Data Files76504
-Node: Very Simple79536
-Node: Two Rules84135
-Node: More Complex86282
-Ref: More Complex-Footnote-189212
-Node: Statements/Lines89297
-Ref: Statements/Lines-Footnote-193759
-Node: Other Features94024
-Node: When94952
-Node: Invoking Gawk97099
-Node: Command Line98484
-Node: Options99267
-Ref: Options-Footnote-1113412
-Node: Other Arguments113437
-Node: Naming Standard Input116095
-Node: Environment Variables117189
-Node: AWKPATH Variable117633
-Ref: AWKPATH Variable-Footnote-1120230
-Node: Other Environment Variables120490
-Node: Exit Status122830
-Node: Include Files123505
-Node: Obsolete126990
-Node: Undocumented127676
-Node: Regexp127917
-Node: Regexp Usage129306
-Node: Escape Sequences131332
-Node: Regexp Operators137095
-Ref: Regexp Operators-Footnote-1144292
-Ref: Regexp Operators-Footnote-2144439
-Node: Bracket Expressions144537
-Ref: table-char-classes146427
-Node: GNU Regexp Operators148950
-Node: Case-sensitivity152673
-Ref: Case-sensitivity-Footnote-1155641
-Ref: Case-sensitivity-Footnote-2155876
-Node: Leftmost Longest155984
-Node: Computed Regexps157185
-Node: Reading Files160595
-Node: Records162536
-Ref: Records-Footnote-1171210
-Node: Fields171247
-Ref: Fields-Footnote-1174280
-Node: Nonconstant Fields174366
-Node: Changing Fields176568
-Node: Field Separators182549
-Node: Default Field Splitting185178
-Node: Regexp Field Splitting186295
-Node: Single Character Fields189637
-Node: Command Line Field Separator190696
-Node: Field Splitting Summary194137
-Ref: Field Splitting Summary-Footnote-1197329
-Node: Constant Size197430
-Node: Splitting By Content202014
-Ref: Splitting By Content-Footnote-1205740
-Node: Multiple Line205780
-Ref: Multiple Line-Footnote-1211627
-Node: Getline211806
-Node: Plain Getline214034
-Node: Getline/Variable216123
-Node: Getline/File217264
-Node: Getline/Variable/File218586
-Ref: Getline/Variable/File-Footnote-1220185
-Node: Getline/Pipe220272
-Node: Getline/Variable/Pipe222832
-Node: Getline/Coprocess223939
-Node: Getline/Variable/Coprocess225182
-Node: Getline Notes225896
-Node: Getline Summary227838
-Ref: table-getline-variants228181
-Node: Command line directories229037
-Node: Printing229662
-Node: Print231293
-Node: Print Examples232630
-Node: Output Separators235414
-Node: OFMT237174
-Node: Printf238532
-Node: Basic Printf239438
-Node: Control Letters240977
-Node: Format Modifiers244789
-Node: Printf Examples250798
-Node: Redirection253513
-Node: Special Files260497
-Node: Special FD261030
-Ref: Special FD-Footnote-1264655
-Node: Special Network264729
-Node: Special Caveats265579
-Node: Close Files And Pipes266375
-Ref: Close Files And Pipes-Footnote-1273398
-Ref: Close Files And Pipes-Footnote-2273546
-Node: Expressions273696
-Node: Values274828
-Node: Constants275504
-Node: Scalar Constants276184
-Ref: Scalar Constants-Footnote-1277043
-Node: Nondecimal-numbers277225
-Node: Regexp Constants280284
-Node: Using Constant Regexps280759
-Node: Variables283814
-Node: Using Variables284469
-Node: Assignment Options286193
-Node: Conversion288065
-Ref: table-locale-affects293441
-Ref: Conversion-Footnote-1294065
-Node: All Operators294174
-Node: Arithmetic Ops294804
-Node: Concatenation297309
-Ref: Concatenation-Footnote-1300102
-Node: Assignment Ops300222
-Ref: table-assign-ops305210
-Node: Increment Ops306618
-Node: Truth Values and Conditions310088
-Node: Truth Values311171
-Node: Typing and Comparison312220
-Node: Variable Typing313009
-Ref: Variable Typing-Footnote-1316906
-Node: Comparison Operators317028
-Ref: table-relational-ops317438
-Node: POSIX String Comparison320987
-Ref: POSIX String Comparison-Footnote-1321943
-Node: Boolean Ops322081
-Ref: Boolean Ops-Footnote-1326159
-Node: Conditional Exp326250
-Node: Function Calls327982
-Node: Precedence331576
-Node: Locales335245
-Node: Patterns and Actions336334
-Node: Pattern Overview337388
-Node: Regexp Patterns339057
-Node: Expression Patterns339600
-Node: Ranges343285
-Node: BEGIN/END346251
-Node: Using BEGIN/END347013
-Ref: Using BEGIN/END-Footnote-1349744
-Node: I/O And BEGIN/END349850
-Node: BEGINFILE/ENDFILE352132
-Node: Empty355025
-Node: Using Shell Variables355341
-Node: Action Overview357626
-Node: Statements359983
-Node: If Statement361837
-Node: While Statement363336
-Node: Do Statement365380
-Node: For Statement366536
-Node: Switch Statement369688
-Node: Break Statement371785
-Node: Continue Statement373775
-Node: Next Statement375568
-Node: Nextfile Statement377958
-Node: Exit Statement380503
-Node: Built-in Variables382919
-Node: User-modified384014
-Ref: User-modified-Footnote-1392040
-Node: Auto-set392102
-Ref: Auto-set-Footnote-1401393
-Node: ARGC and ARGV401598
-Node: Arrays405449
-Node: Array Basics406954
-Node: Array Intro407780
-Node: Reference to Elements412098
-Node: Assigning Elements414368
-Node: Array Example414859
-Node: Scanning an Array416591
-Node: Controlling Scanning418905
-Ref: Controlling Scanning-Footnote-1423838
-Node: Delete424154
-Ref: Delete-Footnote-1426589
-Node: Numeric Array Subscripts426646
-Node: Uninitialized Subscripts428829
-Node: Multi-dimensional430457
-Node: Multi-scanning433551
-Node: Arrays of Arrays435142
-Node: Functions439787
-Node: Built-in440609
-Node: Calling Built-in441687
-Node: Numeric Functions443675
-Ref: Numeric Functions-Footnote-1447440
-Ref: Numeric Functions-Footnote-2447797
-Ref: Numeric Functions-Footnote-3447845
-Node: String Functions448114
-Ref: String Functions-Footnote-1471611
-Ref: String Functions-Footnote-2471740
-Ref: String Functions-Footnote-3471988
-Node: Gory Details472075
-Ref: table-sub-escapes473754
-Ref: table-sub-posix-92475108
-Ref: table-sub-proposed476451
-Ref: table-posix-sub477801
-Ref: table-gensub-escapes479347
-Ref: Gory Details-Footnote-1480554
-Ref: Gory Details-Footnote-2480605
-Node: I/O Functions480756
-Ref: I/O Functions-Footnote-1487411
-Node: Time Functions487558
-Ref: Time Functions-Footnote-1498450
-Ref: Time Functions-Footnote-2498518
-Ref: Time Functions-Footnote-3498676
-Ref: Time Functions-Footnote-4498787
-Ref: Time Functions-Footnote-5498899
-Ref: Time Functions-Footnote-6499126
-Node: Bitwise Functions499392
-Ref: table-bitwise-ops499950
-Ref: Bitwise Functions-Footnote-1504110
-Node: Type Functions504294
-Node: I18N Functions504764
-Node: User-defined506391
-Node: Definition Syntax507195
-Ref: Definition Syntax-Footnote-1512105
-Node: Function Example512174
-Node: Function Caveats514768
-Node: Calling A Function515189
-Node: Variable Scope516304
-Node: Pass By Value/Reference518279
-Node: Return Statement521719
-Node: Dynamic Typing524700
-Node: Indirect Calls525435
-Node: Internationalization535120
-Node: I18N and L10N536546
-Node: Explaining gettext537232
-Ref: Explaining gettext-Footnote-1542298
-Ref: Explaining gettext-Footnote-2542482
-Node: Programmer i18n542647
-Node: Translator i18n546847
-Node: String Extraction547640
-Ref: String Extraction-Footnote-1548601
-Node: Printf Ordering548687
-Ref: Printf Ordering-Footnote-1551471
-Node: I18N Portability551535
-Ref: I18N Portability-Footnote-1553984
-Node: I18N Example554047
-Ref: I18N Example-Footnote-1556682
-Node: Gawk I18N556754
-Node: Advanced Features557371
-Node: Nondecimal Data558884
-Node: Array Sorting560467
-Node: Controlling Array Traversal561164
-Node: Array Sorting Functions569401
-Ref: Array Sorting Functions-Footnote-1573075
-Ref: Array Sorting Functions-Footnote-2573168
-Node: Two-way I/O573362
-Ref: Two-way I/O-Footnote-1578794
-Node: TCP/IP Networking578864
-Node: Profiling581708
-Node: Library Functions589162
-Ref: Library Functions-Footnote-1592169
-Node: Library Names592340
-Ref: Library Names-Footnote-1595811
-Ref: Library Names-Footnote-2596031
-Node: General Functions596117
-Node: Strtonum Function597070
-Node: Assert Function600000
-Node: Round Function603326
-Node: Cliff Random Function604869
-Node: Ordinal Functions605885
-Ref: Ordinal Functions-Footnote-1608955
-Ref: Ordinal Functions-Footnote-2609207
-Node: Join Function609416
-Ref: Join Function-Footnote-1611187
-Node: Gettimeofday Function611387
-Node: Data File Management615102
-Node: Filetrans Function615734
-Node: Rewind Function619873
-Node: File Checking621260
-Node: Empty Files622354
-Node: Ignoring Assigns624584
-Node: Getopt Function626137
-Ref: Getopt Function-Footnote-1637441
-Node: Passwd Functions637644
-Ref: Passwd Functions-Footnote-1646619
-Node: Group Functions646707
-Node: Walking Arrays654791
-Node: Sample Programs656360
-Node: Running Examples657025
-Node: Clones657753
-Node: Cut Program658977
-Node: Egrep Program668822
-Ref: Egrep Program-Footnote-1676595
-Node: Id Program676705
-Node: Split Program680321
-Ref: Split Program-Footnote-1683840
-Node: Tee Program683968
-Node: Uniq Program686771
-Node: Wc Program694200
-Ref: Wc Program-Footnote-1698466
-Ref: Wc Program-Footnote-2698666
-Node: Miscellaneous Programs698758
-Node: Dupword Program699946
-Node: Alarm Program701977
-Node: Translate Program706726
-Ref: Translate Program-Footnote-1711113
-Ref: Translate Program-Footnote-2711341
-Node: Labels Program711475
-Ref: Labels Program-Footnote-1714846
-Node: Word Sorting714930
-Node: History Sorting718814
-Node: Extract Program720653
-Ref: Extract Program-Footnote-1728136
-Node: Simple Sed728264
-Node: Igawk Program731326
-Ref: Igawk Program-Footnote-1746483
-Ref: Igawk Program-Footnote-2746684
-Node: Anagram Program746822
-Node: Signature Program749890
-Node: Debugger750990
-Node: Debugging751942
-Node: Debugging Concepts752375
-Node: Debugging Terms754231
-Node: Awk Debugging756828
-Node: Sample Debugging Session757720
-Node: Debugger Invocation758240
-Node: Finding The Bug759569
-Node: List of Debugger Commands766057
-Node: Breakpoint Control767391
-Node: Debugger Execution Control771055
-Node: Viewing And Changing Data774415
-Node: Execution Stack777771
-Node: Debugger Info779238
-Node: Miscellaneous Debugger Commands783219
-Node: Readline Support788664
-Node: Limitations789495
-Node: Language History791747
-Node: V7/SVR3.1793259
-Node: SVR4795580
-Node: POSIX797022
-Node: BTL798030
-Node: POSIX/GNU798764
-Node: Common Extensions803915
-Node: Ranges and Locales805022
-Ref: Ranges and Locales-Footnote-1809626
-Node: Contributors809847
-Node: Installation814108
-Node: Gawk Distribution815002
-Node: Getting815486
-Node: Extracting816312
-Node: Distribution contents818004
-Node: Unix Installation823226
-Node: Quick Installation823843
-Node: Additional Configuration Options825805
-Node: Configuration Philosophy827282
-Node: Non-Unix Installation829624
-Node: PC Installation830082
-Node: PC Binary Installation831381
-Node: PC Compiling833229
-Node: PC Testing836173
-Node: PC Using837349
-Node: Cygwin841534
-Node: MSYS842534
-Node: VMS Installation843048
-Node: VMS Compilation843651
-Ref: VMS Compilation-Footnote-1844658
-Node: VMS Installation Details844716
-Node: VMS Running846351
-Node: VMS Old Gawk847958
-Node: Bugs848432
-Node: Other Versions852284
-Node: Notes857599
-Node: Compatibility Mode858291
-Node: Additions859074
-Node: Accessing The Source859886
-Node: Adding Code861311
-Node: New Ports867278
-Node: Dynamic Extensions871391
-Node: Internals872831
-Node: Plugin License881350
-Node: Loading Extensions881988
-Node: Sample Library883798
-Node: Internal File Description884488
-Node: Internal File Ops888203
-Ref: Internal File Ops-Footnote-1892927
-Node: Using Internal File Ops893067
-Node: Future Extensions895444
-Node: Basic Concepts897948
-Node: Basic High Level898705
-Ref: Basic High Level-Footnote-1902740
-Node: Basic Data Typing902925
-Node: Floating Point Issues907450
-Node: String Conversion Precision908533
-Ref: String Conversion Precision-Footnote-1910233
-Node: Unexpected Results910342
-Node: POSIX Floating Point Problems912168
-Ref: POSIX Floating Point Problems-Footnote-1915873
-Node: Glossary915911
-Node: Copying940887
-Node: GNU Free Documentation License978444
-Node: Index1003581
+Node: Foreword30411
+Node: Preface34756
+Ref: Preface-Footnote-137809
+Ref: Preface-Footnote-237915
+Node: History38147
+Node: Names40538
+Ref: Names-Footnote-142015
+Node: This Manual42087
+Ref: This Manual-Footnote-147025
+Node: Conventions47125
+Node: Manual History49259
+Ref: Manual History-Footnote-152529
+Ref: Manual History-Footnote-252570
+Node: How To Contribute52644
+Node: Acknowledgments53788
+Node: Getting Started58119
+Node: Running gawk60498
+Node: One-shot61684
+Node: Read Terminal62909
+Ref: Read Terminal-Footnote-164559
+Ref: Read Terminal-Footnote-264835
+Node: Long65006
+Node: Executable Scripts66382
+Ref: Executable Scripts-Footnote-168251
+Ref: Executable Scripts-Footnote-268353
+Node: Comments68804
+Node: Quoting71271
+Node: DOS Quoting75894
+Node: Sample Data Files76569
+Node: Very Simple79601
+Node: Two Rules84200
+Node: More Complex86347
+Ref: More Complex-Footnote-189277
+Node: Statements/Lines89362
+Ref: Statements/Lines-Footnote-193824
+Node: Other Features94089
+Node: When95017
+Node: Invoking Gawk97164
+Node: Command Line98549
+Node: Options99332
+Ref: Options-Footnote-1113477
+Node: Other Arguments113502
+Node: Naming Standard Input116160
+Node: Environment Variables117254
+Node: AWKPATH Variable117698
+Ref: AWKPATH Variable-Footnote-1120295
+Node: Other Environment Variables120555
+Node: Exit Status123047
+Node: Include Files123722
+Node: Obsolete127207
+Node: Undocumented127893
+Node: Regexp128134
+Node: Regexp Usage129523
+Node: Escape Sequences131549
+Node: Regexp Operators137312
+Ref: Regexp Operators-Footnote-1144509
+Ref: Regexp Operators-Footnote-2144656
+Node: Bracket Expressions144754
+Ref: table-char-classes146644
+Node: GNU Regexp Operators149167
+Node: Case-sensitivity152890
+Ref: Case-sensitivity-Footnote-1155858
+Ref: Case-sensitivity-Footnote-2156093
+Node: Leftmost Longest156201
+Node: Computed Regexps157402
+Node: Reading Files160812
+Node: Records162816
+Ref: Records-Footnote-1171490
+Node: Fields171527
+Ref: Fields-Footnote-1174560
+Node: Nonconstant Fields174646
+Node: Changing Fields176848
+Node: Field Separators182829
+Node: Default Field Splitting185458
+Node: Regexp Field Splitting186575
+Node: Single Character Fields189917
+Node: Command Line Field Separator190976
+Node: Field Splitting Summary194417
+Ref: Field Splitting Summary-Footnote-1197609
+Node: Constant Size197710
+Node: Splitting By Content202294
+Ref: Splitting By Content-Footnote-1206020
+Node: Multiple Line206060
+Ref: Multiple Line-Footnote-1211907
+Node: Getline212086
+Node: Plain Getline214302
+Node: Getline/Variable216391
+Node: Getline/File217532
+Node: Getline/Variable/File218854
+Ref: Getline/Variable/File-Footnote-1220453
+Node: Getline/Pipe220540
+Node: Getline/Variable/Pipe223100
+Node: Getline/Coprocess224207
+Node: Getline/Variable/Coprocess225450
+Node: Getline Notes226164
+Node: Getline Summary228106
+Ref: table-getline-variants228449
+Node: Read Timeout229305
+Ref: Read Timeout-Footnote-1233050
+Node: Command line directories233107
+Node: Printing233737
+Node: Print235368
+Node: Print Examples236705
+Node: Output Separators239489
+Node: OFMT241249
+Node: Printf242607
+Node: Basic Printf243513
+Node: Control Letters245052
+Node: Format Modifiers248864
+Node: Printf Examples254873
+Node: Redirection257588
+Node: Special Files264572
+Node: Special FD265105
+Ref: Special FD-Footnote-1268730
+Node: Special Network268804
+Node: Special Caveats269654
+Node: Close Files And Pipes270450
+Ref: Close Files And Pipes-Footnote-1277473
+Ref: Close Files And Pipes-Footnote-2277621
+Node: Expressions277771
+Node: Values278903
+Node: Constants279579
+Node: Scalar Constants280259
+Ref: Scalar Constants-Footnote-1281118
+Node: Nondecimal-numbers281300
+Node: Regexp Constants284359
+Node: Using Constant Regexps284834
+Node: Variables287889
+Node: Using Variables288544
+Node: Assignment Options290268
+Node: Conversion292140
+Ref: table-locale-affects297516
+Ref: Conversion-Footnote-1298140
+Node: All Operators298249
+Node: Arithmetic Ops298879
+Node: Concatenation301384
+Ref: Concatenation-Footnote-1304177
+Node: Assignment Ops304297
+Ref: table-assign-ops309285
+Node: Increment Ops310693
+Node: Truth Values and Conditions314163
+Node: Truth Values315246
+Node: Typing and Comparison316295
+Node: Variable Typing317084
+Ref: Variable Typing-Footnote-1320981
+Node: Comparison Operators321103
+Ref: table-relational-ops321513
+Node: POSIX String Comparison325062
+Ref: POSIX String Comparison-Footnote-1326018
+Node: Boolean Ops326156
+Ref: Boolean Ops-Footnote-1330234
+Node: Conditional Exp330325
+Node: Function Calls332057
+Node: Precedence335651
+Node: Locales339320
+Node: Patterns and Actions340409
+Node: Pattern Overview341463
+Node: Regexp Patterns343132
+Node: Expression Patterns343675
+Node: Ranges347360
+Node: BEGIN/END350326
+Node: Using BEGIN/END351088
+Ref: Using BEGIN/END-Footnote-1353819
+Node: I/O And BEGIN/END353925
+Node: BEGINFILE/ENDFILE356207
+Node: Empty359100
+Node: Using Shell Variables359416
+Node: Action Overview361701
+Node: Statements364058
+Node: If Statement365912
+Node: While Statement367411
+Node: Do Statement369455
+Node: For Statement370611
+Node: Switch Statement373763
+Node: Break Statement375860
+Node: Continue Statement377850
+Node: Next Statement379643
+Node: Nextfile Statement382033
+Node: Exit Statement384578
+Node: Built-in Variables386994
+Node: User-modified388089
+Ref: User-modified-Footnote-1396115
+Node: Auto-set396177
+Ref: Auto-set-Footnote-1405468
+Node: ARGC and ARGV405673
+Node: Arrays409524
+Node: Array Basics411029
+Node: Array Intro411855
+Node: Reference to Elements416173
+Node: Assigning Elements418443
+Node: Array Example418934
+Node: Scanning an Array420666
+Node: Controlling Scanning422980
+Ref: Controlling Scanning-Footnote-1427913
+Node: Delete428229
+Ref: Delete-Footnote-1430664
+Node: Numeric Array Subscripts430721
+Node: Uninitialized Subscripts432904
+Node: Multi-dimensional434532
+Node: Multi-scanning437626
+Node: Arrays of Arrays439217
+Node: Functions443862
+Node: Built-in444684
+Node: Calling Built-in445762
+Node: Numeric Functions447750
+Ref: Numeric Functions-Footnote-1451515
+Ref: Numeric Functions-Footnote-2451872
+Ref: Numeric Functions-Footnote-3451920
+Node: String Functions452189
+Ref: String Functions-Footnote-1475686
+Ref: String Functions-Footnote-2475815
+Ref: String Functions-Footnote-3476063
+Node: Gory Details476150
+Ref: table-sub-escapes477829
+Ref: table-sub-posix-92479183
+Ref: table-sub-proposed480526
+Ref: table-posix-sub481876
+Ref: table-gensub-escapes483422
+Ref: Gory Details-Footnote-1484629
+Ref: Gory Details-Footnote-2484680
+Node: I/O Functions484831
+Ref: I/O Functions-Footnote-1491486
+Node: Time Functions491633
+Ref: Time Functions-Footnote-1502525
+Ref: Time Functions-Footnote-2502593
+Ref: Time Functions-Footnote-3502751
+Ref: Time Functions-Footnote-4502862
+Ref: Time Functions-Footnote-5502974
+Ref: Time Functions-Footnote-6503201
+Node: Bitwise Functions503467
+Ref: table-bitwise-ops504025
+Ref: Bitwise Functions-Footnote-1508185
+Node: Type Functions508369
+Node: I18N Functions508839
+Node: User-defined510466
+Node: Definition Syntax511270
+Ref: Definition Syntax-Footnote-1516180
+Node: Function Example516249
+Node: Function Caveats518843
+Node: Calling A Function519264
+Node: Variable Scope520379
+Node: Pass By Value/Reference522354
+Node: Return Statement525794
+Node: Dynamic Typing528775
+Node: Indirect Calls529510
+Node: Internationalization539195
+Node: I18N and L10N540621
+Node: Explaining gettext541307
+Ref: Explaining gettext-Footnote-1546373
+Ref: Explaining gettext-Footnote-2546557
+Node: Programmer i18n546722
+Node: Translator i18n550922
+Node: String Extraction551715
+Ref: String Extraction-Footnote-1552676
+Node: Printf Ordering552762
+Ref: Printf Ordering-Footnote-1555546
+Node: I18N Portability555610
+Ref: I18N Portability-Footnote-1558059
+Node: I18N Example558122
+Ref: I18N Example-Footnote-1560757
+Node: Gawk I18N560829
+Node: Advanced Features561446
+Node: Nondecimal Data562959
+Node: Array Sorting564542
+Node: Controlling Array Traversal565239
+Node: Array Sorting Functions573476
+Ref: Array Sorting Functions-Footnote-1577150
+Ref: Array Sorting Functions-Footnote-2577243
+Node: Two-way I/O577437
+Ref: Two-way I/O-Footnote-1582869
+Node: TCP/IP Networking582939
+Node: Profiling585783
+Node: Library Functions593237
+Ref: Library Functions-Footnote-1596244
+Node: Library Names596415
+Ref: Library Names-Footnote-1599886
+Ref: Library Names-Footnote-2600106
+Node: General Functions600192
+Node: Strtonum Function601145
+Node: Assert Function604075
+Node: Round Function607401
+Node: Cliff Random Function608944
+Node: Ordinal Functions609960
+Ref: Ordinal Functions-Footnote-1613030
+Ref: Ordinal Functions-Footnote-2613282
+Node: Join Function613491
+Ref: Join Function-Footnote-1615262
+Node: Gettimeofday Function615462
+Node: Data File Management619177
+Node: Filetrans Function619809
+Node: Rewind Function623948
+Node: File Checking625335
+Node: Empty Files626429
+Node: Ignoring Assigns628659
+Node: Getopt Function630212
+Ref: Getopt Function-Footnote-1641516
+Node: Passwd Functions641719
+Ref: Passwd Functions-Footnote-1650694
+Node: Group Functions650782
+Node: Walking Arrays658866
+Node: Sample Programs660435
+Node: Running Examples661100
+Node: Clones661828
+Node: Cut Program663052
+Node: Egrep Program672897
+Ref: Egrep Program-Footnote-1680670
+Node: Id Program680780
+Node: Split Program684396
+Ref: Split Program-Footnote-1687915
+Node: Tee Program688043
+Node: Uniq Program690846
+Node: Wc Program698275
+Ref: Wc Program-Footnote-1702541
+Ref: Wc Program-Footnote-2702741
+Node: Miscellaneous Programs702833
+Node: Dupword Program704021
+Node: Alarm Program706052
+Node: Translate Program710801
+Ref: Translate Program-Footnote-1715188
+Ref: Translate Program-Footnote-2715416
+Node: Labels Program715550
+Ref: Labels Program-Footnote-1718921
+Node: Word Sorting719005
+Node: History Sorting722889
+Node: Extract Program724728
+Ref: Extract Program-Footnote-1732211
+Node: Simple Sed732339
+Node: Igawk Program735401
+Ref: Igawk Program-Footnote-1750558
+Ref: Igawk Program-Footnote-2750759
+Node: Anagram Program750897
+Node: Signature Program753965
+Node: Debugger755065
+Node: Debugging756017
+Node: Debugging Concepts756450
+Node: Debugging Terms758306
+Node: Awk Debugging760903
+Node: Sample Debugging Session761795
+Node: Debugger Invocation762315
+Node: Finding The Bug763644
+Node: List of Debugger Commands770132
+Node: Breakpoint Control771466
+Node: Debugger Execution Control775130
+Node: Viewing And Changing Data778490
+Node: Execution Stack781846
+Node: Debugger Info783313
+Node: Miscellaneous Debugger Commands787294
+Node: Readline Support792739
+Node: Limitations793570
+Node: Language History795822
+Node: V7/SVR3.1797334
+Node: SVR4799655
+Node: POSIX801097
+Node: BTL802105
+Node: POSIX/GNU802839
+Node: Common Extensions807990
+Node: Ranges and Locales809097
+Ref: Ranges and Locales-Footnote-1813701
+Node: Contributors813922
+Node: Installation818183
+Node: Gawk Distribution819077
+Node: Getting819561
+Node: Extracting820387
+Node: Distribution contents822079
+Node: Unix Installation827301
+Node: Quick Installation827918
+Node: Additional Configuration Options829880
+Node: Configuration Philosophy831357
+Node: Non-Unix Installation833699
+Node: PC Installation834157
+Node: PC Binary Installation835456
+Node: PC Compiling837304
+Node: PC Testing840248
+Node: PC Using841424
+Node: Cygwin845609
+Node: MSYS846609
+Node: VMS Installation847123
+Node: VMS Compilation847726
+Ref: VMS Compilation-Footnote-1848733
+Node: VMS Installation Details848791
+Node: VMS Running850426
+Node: VMS Old Gawk852033
+Node: Bugs852507
+Node: Other Versions856359
+Node: Notes861674
+Node: Compatibility Mode862366
+Node: Additions863149
+Node: Accessing The Source863961
+Node: Adding Code865386
+Node: New Ports871353
+Node: Dynamic Extensions875466
+Node: Internals876906
+Node: Plugin License885425
+Node: Loading Extensions886063
+Node: Sample Library887873
+Node: Internal File Description888563
+Node: Internal File Ops892278
+Ref: Internal File Ops-Footnote-1897002
+Node: Using Internal File Ops897142
+Node: Future Extensions899519
+Node: Basic Concepts902023
+Node: Basic High Level902780
+Ref: Basic High Level-Footnote-1906815
+Node: Basic Data Typing907000
+Node: Floating Point Issues911525
+Node: String Conversion Precision912608
+Ref: String Conversion Precision-Footnote-1914308
+Node: Unexpected Results914417
+Node: POSIX Floating Point Problems916243
+Ref: POSIX Floating Point Problems-Footnote-1919948
+Node: Glossary919986
+Node: Copying944962
+Node: GNU Free Documentation License982519
+Node: Index1007656

End Tag Table