diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 932 |
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 |