diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 890 |
1 files changed, 455 insertions, 435 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index ee736b9e..2171d6f2 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -11043,6 +11043,27 @@ they are not special: after it has finished parsing the program; they are _not_ updated while the program runs. + 'PROCINFO["platform"]' + This element gives a string indicating the platform for which + 'gawk' was compiled. The value will be one of the following: + + '"vms"' + OpenVMS or Vax/VMS. + + '"djgpp"' + '"mingw"' + Microsoft Windows, using either DJGPP or MinGW, + respectively. + + '"os2"' + OS/2. + + '"os390"' + OS/390. + + '"posix"' + GNU/Linux, Cygwin, Mac OS X, and legacy Unix systems. + 'PROCINFO["pgrpid"]' The process group ID of the current process. @@ -11169,15 +11190,14 @@ they are not special: test if an element in 'SYMTAB' is an array. Also, you may not use the 'delete' statement with the 'SYMTAB' array. - You may use an index for 'SYMTAB' that is not a predefined - identifier: + Prior to version 5.0 of 'gawk', you could use an index for 'SYMTAB' + that was not a predefined identifier: SYMTAB["xxx"] = 5 print SYMTAB["xxx"] - This works as expected: in this case 'SYMTAB' acts just like a - regular array. The only difference is that you can't then delete - 'SYMTAB["xxx"]'. + This no longer works, instead producing a fatal error, as it led to + rampant confusion. The 'SYMTAB' array is more interesting than it looks. Andrew Schorr points out that it effectively gives 'awk' data pointers. @@ -20774,7 +20794,8 @@ output. They are as follows: structure of the program and the precedence rules. For example, '(3 + 5) * 4' means add three and five, then multiply the total by four. However, '3 + 5 * 4' has no parentheses, and means '3 + (5 * - 4)'. + 4)'. However, explicit parentheses in the source program are + retained. * Parentheses are used around the arguments to 'print' and 'printf' only when the 'print' or 'printf' statement is followed by a @@ -20796,10 +20817,11 @@ representation. Also, things such as: come out as: /foo/ { - print $0 + print } -which is correct, but possibly unexpected. +which is correct, but possibly unexpected. (If a program uses both +'print $0' and plain 'print', that distinction is retained.) Besides creating profiles when a program has completed, 'gawk' can produce a profile while it is running. This is useful if your 'awk' @@ -20855,7 +20877,10 @@ without any execution counts. profiling, and that created when pretty-printing. Pretty-printed output preserves the original comments that were in the program, although their placement may not correspond exactly to their original locations in the -source code.(1) +source code. However, no comments should be lost. Also, 'gawk' does +the best it can to preserve the distinction between comments at the end +of a statement and comments on lines by themselves. This isn't always +perfect, though. However, as a deliberate design decision, profiling output _omits_ the original program's comments. This allows you to focus on the @@ -20875,14 +20900,6 @@ disable 'gawk''s default optimizations. numeric constants; if you used an octal or hexadecimal value in your source code, it will appear that way in the output. - ---------- Footnotes ---------- - - (1) 'gawk' does the best it can to preserve the distinction between -comments at the end of a statement and comments on lines by themselves. -Due to implementation constraints, it does not always do so correctly, -particularly for 'switch' statements. The 'gawk' maintainers hope to -improve this in a subsequent release. - File: gawk.info, Node: Advanced Features Summary, Prev: Profiling, Up: Advanced Features @@ -28439,6 +28456,11 @@ POSIX 'awk', in the order they were added to 'gawk'. * Support for GNU/Linux on Alpha was removed. + Version 5.0 added the following features: + + * The 'PROCINFO["platform"]' array element, which allows you to write + code that takes the operating system / platform into account. + File: gawk.info, Node: Common Extensions, Next: Ranges and Locales, Prev: Feature History, Up: Language History @@ -29204,10 +29226,6 @@ command line when compiling 'gawk' from scratch, including: possible to keep extensions for different API versions on the same system without their conflicting with one another. -'--with-whiny-user-strftime' - Force use of the included version of the C 'strftime()' function - for deficient systems. - Use the command './configure --help' to see the full list of options supplied by 'configure'. @@ -29373,6 +29391,12 @@ accomplished by using an appropriate '-v BINMODE=N' option on the command line. 'BINMODE' is set at the time a file or pipe is opened and cannot be changed midstream. + On POSIX-compatible systems, this variable's value has no effect. +Thus, if you think your program will run on multiple different systems +and that you may need to use 'BINMODE', you should simply set it (in the +program or on the command line) unconditionally, and not worry about the +operating system on which your program is running. + The name 'BINMODE' was chosen to match 'mawk' (*note Other Versions::). 'mawk' and 'gawk' handle 'BINMODE' similarly; however, 'mawk' adds a '-W BINMODE=N' option and an environment variable that can @@ -33129,8 +33153,6 @@ Index * --traditional option, --posix option and: Options. (line 285) * --use-lc-numeric option: Options. (line 232) * --version option: Options. (line 317) -* --with-whiny-user-strftime configuration option: Additional Configuration Options. - (line 48) * -b option: Options. (line 69) * -c option: Options. (line 82) * -C option: Options. (line 89) @@ -33842,8 +33864,6 @@ Index (line 37) * configuration option, --enable-versioned-extension-dir: Additional Configuration Options. (line 42) -* configuration option, --with-whiny-user-strftime: Additional Configuration Options. - (line 48) * configuration options, gawk: Additional Configuration Options. (line 6) * constant regexps: Regexp Usage. (line 57) @@ -33920,7 +33940,7 @@ Index * dark corner, field separators: Full Line Fields. (line 22) * dark corner, FILENAME variable: Getline Notes. (line 19) * dark corner, FILENAME variable <1>: Auto-set. (line 108) -* dark corner, FNR/NR variables: Auto-set. (line 389) +* dark corner, FNR/NR variables: Auto-set. (line 409) * dark corner, format-control characters: Control Letters. (line 33) * dark corner, format-control characters <1>: Control Letters. (line 108) @@ -34184,7 +34204,7 @@ Index (line 6) * differences in awk and gawk, RS/RT variables: gawk split records. (line 58) -* differences in awk and gawk, RS/RT variables <1>: Auto-set. (line 327) +* differences in awk and gawk, RS/RT variables <1>: Auto-set. (line 348) * differences in awk and gawk, single-character fields: Single Character Fields. (line 6) * differences in awk and gawk, split() function: String Functions. @@ -34193,7 +34213,7 @@ Index * differences in awk and gawk, strings <1>: Scalar Constants. (line 53) * differences in awk and gawk, strings, storing: gawk split records. (line 76) -* differences in awk and gawk, SYMTAB variable: Auto-set. (line 331) +* differences in awk and gawk, SYMTAB variable: Auto-set. (line 352) * differences in awk and gawk, TEXTDOMAIN variable: User-modified. (line 155) * differences in awk and gawk, trunc-mod operation: Arithmetic Ops. @@ -34230,7 +34250,7 @@ Index * dump debugger command: Miscellaneous Debugger Commands. (line 9) * dupword.awk program: Dupword Program. (line 31) -* dynamic profiling: Profiling. (line 177) +* dynamic profiling: Profiling. (line 179) * dynamically loaded extensions: Dynamic Extensions. (line 6) * e debugger command (alias for enable): Breakpoint Control. (line 73) * EBCDIC: Ordinal Functions. (line 45) @@ -34359,7 +34379,7 @@ Index (line 6) * extension API version: Extension Versioning. (line 6) -* extension API, version number: Auto-set. (line 266) +* extension API, version number: Auto-set. (line 287) * extension example: Extension Example. (line 6) * extension registration: Registration Functions. (line 6) @@ -34519,7 +34539,7 @@ Index (line 12) * FNR variable: Records. (line 6) * FNR variable <1>: Auto-set. (line 118) -* FNR variable, changing: Auto-set. (line 389) +* FNR variable, changing: Auto-set. (line 409) * for statement: For Statement. (line 6) * for statement, looping over arrays: Scanning an Array. (line 20) * fork() extension function: Extension Sample Fork. @@ -34622,8 +34642,8 @@ Index * G., Daniel Richard: Acknowledgments. (line 60) * G., Daniel Richard <1>: Maintainers. (line 14) * Garfinkle, Scott: Contributors. (line 35) -* gawk program, dynamic profiling: Profiling. (line 177) -* gawk version: Auto-set. (line 241) +* gawk program, dynamic profiling: Profiling. (line 179) +* gawk version: Auto-set. (line 262) * gawk, ARGIND variable in: Other Arguments. (line 15) * gawk, awk and: Preface. (line 21) * gawk, awk and <1>: This Manual. (line 14) @@ -34699,13 +34719,13 @@ Index * gawk, regular expressions, precedence: Regexp Operators. (line 161) * gawk, RT variable in: awk split records. (line 131) * gawk, RT variable in <1>: Multiple Line. (line 130) -* gawk, RT variable in <2>: Auto-set. (line 327) +* gawk, RT variable in <2>: Auto-set. (line 348) * gawk, See Also awk: Preface. (line 34) * gawk, source code, obtaining: Getting. (line 6) * gawk, splitting fields and: Testing field creation. (line 6) * gawk, string-translation functions: I18N Functions. (line 6) -* gawk, SYMTAB array in: Auto-set. (line 331) +* gawk, SYMTAB array in: Auto-set. (line 352) * gawk, TEXTDOMAIN variable in: User-modified. (line 155) * gawk, timestamps: Time Functions. (line 6) * gawk, uses for: Preface. (line 34) @@ -34829,7 +34849,7 @@ Index * history expansion, in debugger: Readline Support. (line 6) * histsort.awk program: History Sorting. (line 25) * Hughes, Phil: Acknowledgments. (line 43) -* HUP signal, for dynamic profiling: Profiling. (line 209) +* HUP signal, for dynamic profiling: Profiling. (line 211) * hyphen (-), - operator: Precedence. (line 51) * hyphen (-), - operator <1>: Precedence. (line 57) * hyphen (-), -- operator: Increment Ops. (line 48) @@ -34911,7 +34931,7 @@ Index * installing gawk: Installation. (line 6) * instruction tracing, in debugger: Debugger Info. (line 90) * int: Numeric Functions. (line 24) -* INT signal (MS-Windows): Profiling. (line 212) +* INT signal (MS-Windows): Profiling. (line 214) * integer array indices: Numeric Array Subscripts. (line 31) * integers, arbitrary precision: Arbitrary Precision Integers. @@ -34967,7 +34987,7 @@ Index * Kernighan, Brian <8>: Other Versions. (line 13) * Kernighan, Brian <9>: Basic Data Typing. (line 54) * Kernighan, Brian <10>: Glossary. (line 204) -* kill command, dynamic profiling: Profiling. (line 186) +* kill command, dynamic profiling: Profiling. (line 188) * Knights, jedi: Undocumented. (line 6) * Kwok, Conrad: Contributors. (line 35) * l debugger command (alias for list): Miscellaneous Debugger Commands. @@ -35105,7 +35125,7 @@ Index * mawk utility <2>: Concatenation. (line 36) * mawk utility <3>: Nextfile Statement. (line 47) * mawk utility <4>: Other Versions. (line 39) -* maximum precision supported by MPFR library: Auto-set. (line 255) +* maximum precision supported by MPFR library: Auto-set. (line 276) * McIlroy, Doug: Glossary. (line 255) * McPhee, Patrick: Contributors. (line 103) * memory, allocating for extensions: Memory Allocation Functions. @@ -35120,7 +35140,7 @@ Index * messages from extensions: Printing Messages. (line 6) * metacharacters in regular expressions: Regexp Operators. (line 6) * metacharacters, escape sequences for: Escape Sequences. (line 140) -* minimum precision required by MPFR library: Auto-set. (line 258) +* minimum precision required by MPFR library: Auto-set. (line 279) * mktime: Time Functions. (line 25) * modifiers, in format specifiers: Format Modifiers. (line 6) * monetary information, localization: Explaining gettext. (line 104) @@ -35180,7 +35200,7 @@ Index * not Boolean-logic operator: Boolean Ops. (line 6) * NR variable: Records. (line 6) * NR variable <1>: Auto-set. (line 143) -* NR variable, changing: Auto-set. (line 389) +* NR variable, changing: Auto-set. (line 409) * null strings: awk split records. (line 121) * null strings <1>: Regexp Field Splitting. (line 43) @@ -35300,7 +35320,7 @@ Index * p debugger command (alias for print): Viewing And Changing Data. (line 35) * Papadopoulos, Panos: Contributors. (line 131) -* parent process ID of gawk process: Auto-set. (line 230) +* parent process ID of gawk process: Auto-set. (line 251) * parentheses (), in a profile: Profiling. (line 146) * parentheses (), regexp operator: Regexp Operators. (line 81) * password file: Passwd Functions. (line 16) @@ -35333,6 +35353,7 @@ Index * pipe, output: Redirection. (line 57) * Pitts, Dave: Acknowledgments. (line 60) * Pitts, Dave <1>: Maintainers. (line 14) +* platform running on, PROCINFO["platform"]: Auto-set. (line 224) * Plauger, P.J.: Library Functions. (line 12) * plug-in: Extension Intro. (line 6) * plus sign (+), + operator: Precedence. (line 51) @@ -35432,8 +35453,8 @@ Index * predefined variables, conveying information: Auto-set. (line 6) * predefined variables, user-modifiable: User-modified. (line 6) * pretty printing: Options. (line 235) -* pretty printing <1>: Profiling. (line 220) -* pretty-printing, profiling, difference with: Profiling. (line 227) +* pretty printing <1>: Profiling. (line 222) +* pretty-printing, profiling, difference with: Profiling. (line 229) * print debugger command: Viewing And Changing Data. (line 35) * print statement: Printing. (line 16) @@ -35472,8 +35493,8 @@ Index * printing, unduplicated lines of text: Uniq Program. (line 6) * printing, user information: Id Program. (line 6) * private variables: Library Names. (line 11) -* process group ID of gawk process: Auto-set. (line 224) -* process ID of gawk process: Auto-set. (line 227) +* process group ID of gawk process: Auto-set. (line 245) +* process ID of gawk process: Auto-set. (line 248) * processes, two-way communications with: Two-way I/O. (line 6) * processing data: Basic High Level. (line 6) * PROCINFO array: Auto-set. (line 148) @@ -35487,8 +35508,8 @@ Index * PROCINFO, values of sorted_in: Controlling Scanning. (line 26) * profiling awk programs: Profiling. (line 6) -* profiling awk programs, dynamically: Profiling. (line 177) -* profiling, pretty-printing, difference with: Profiling. (line 227) +* profiling awk programs, dynamically: Profiling. (line 179) +* profiling, pretty-printing, difference with: Profiling. (line 229) * program identifiers: Auto-set. (line 193) * program, definition of: Getting Started. (line 21) * programming conventions, --non-decimal-data option: Nondecimal Data. @@ -35525,7 +35546,7 @@ Index * QuikTrim Awk: Other Versions. (line 143) * quit debugger command: Miscellaneous Debugger Commands. (line 100) -* QUIT signal (MS-Windows): Profiling. (line 212) +* QUIT signal (MS-Windows): Profiling. (line 214) * quoting in gawk command lines: Long. (line 26) * quoting in gawk command lines, tricks for: Quoting. (line 91) * quoting, for small awk programs: Comments. (line 27) @@ -35651,7 +35672,7 @@ Index * right shift: Bitwise Functions. (line 54) * right shift, bitwise: Bitwise Functions. (line 32) * Ritchie, Dennis: Basic Data Typing. (line 54) -* RLENGTH variable: Auto-set. (line 314) +* RLENGTH variable: Auto-set. (line 335) * RLENGTH variable, match() function and: String Functions. (line 228) * Robbins, Arnold: Command Line Field Separator. (line 71) @@ -35679,11 +35700,11 @@ Index * RS variable <1>: User-modified. (line 136) * RS variable, multiline records and: Multiple Line. (line 17) * rshift: Bitwise Functions. (line 54) -* RSTART variable: Auto-set. (line 320) +* RSTART variable: Auto-set. (line 341) * RSTART variable, match() function and: String Functions. (line 228) * RT variable: awk split records. (line 131) * RT variable <1>: Multiple Line. (line 130) -* RT variable <2>: Auto-set. (line 327) +* RT variable <2>: Auto-set. (line 348) * Rubin, Paul: History. (line 30) * Rubin, Paul <1>: Contributors. (line 16) * rule, definition of: Getting Started. (line 21) @@ -35701,7 +35722,7 @@ Index * scanning arrays: Scanning an Array. (line 6) * scanning multidimensional arrays: Multiscanning. (line 11) * Schorr, Andrew: Acknowledgments. (line 60) -* Schorr, Andrew <1>: Auto-set. (line 359) +* Schorr, Andrew <1>: Auto-set. (line 379) * Schorr, Andrew <2>: Contributors. (line 136) * Schreiber, Bert: Acknowledgments. (line 38) * Schreiber, Rita: Acknowledgments. (line 38) @@ -35788,7 +35809,7 @@ Index * sidebar, Beware The Smoke and Mirrors!: Bitwise Functions. (line 127) * sidebar, Changing FS Does Not Affect the Fields: Full Line Fields. (line 14) -* sidebar, Changing NR and FNR: Auto-set. (line 387) +* sidebar, Changing NR and FNR: Auto-set. (line 407) * sidebar, Controlling Output Buffering with system(): I/O Functions. (line 166) * sidebar, Escape Sequences for Metacharacters: Escape Sequences. @@ -35816,15 +35837,15 @@ Index (line 130) * sidebar, Using \n in Bracket Expressions of Dynamic Regexps: Computed Regexps. (line 58) -* SIGHUP signal, for dynamic profiling: Profiling. (line 209) -* SIGINT signal (MS-Windows): Profiling. (line 212) -* signals, HUP/SIGHUP, for profiling: Profiling. (line 209) -* signals, INT/SIGINT (MS-Windows): Profiling. (line 212) -* signals, QUIT/SIGQUIT (MS-Windows): Profiling. (line 212) -* signals, USR1/SIGUSR1, for profiling: Profiling. (line 186) +* SIGHUP signal, for dynamic profiling: Profiling. (line 211) +* SIGINT signal (MS-Windows): Profiling. (line 214) +* signals, HUP/SIGHUP, for profiling: Profiling. (line 211) +* signals, INT/SIGINT (MS-Windows): Profiling. (line 214) +* signals, QUIT/SIGQUIT (MS-Windows): Profiling. (line 214) +* signals, USR1/SIGUSR1, for profiling: Profiling. (line 188) * signature program: Signature Program. (line 6) -* SIGQUIT signal (MS-Windows): Profiling. (line 212) -* SIGUSR1 signal, for dynamic profiling: Profiling. (line 186) +* SIGQUIT signal (MS-Windows): Profiling. (line 214) +* SIGUSR1 signal, for dynamic profiling: Profiling. (line 188) * silent debugger command: Debugger Execution Control. (line 10) * sin: Numeric Functions. (line 75) @@ -35956,9 +35977,9 @@ Index * substr: String Functions. (line 487) * substring: String Functions. (line 487) * Sumner, Andrew: Other Versions. (line 64) -* supplementary groups of gawk process: Auto-set. (line 271) +* supplementary groups of gawk process: Auto-set. (line 292) * switch statement: Switch Statement. (line 6) -* SYMTAB array: Auto-set. (line 331) +* SYMTAB array: Auto-set. (line 352) * syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops. (line 149) * system: I/O Functions. (line 106) @@ -36105,7 +36126,7 @@ Index * user-modifiable variables: User-modified. (line 6) * users, information about, printing: Id Program. (line 6) * users, information about, retrieving: Passwd Functions. (line 16) -* USR1 signal, for dynamic profiling: Profiling. (line 186) +* USR1 signal, for dynamic profiling: Profiling. (line 188) * values, numeric: Basic Data Typing. (line 13) * values, string: Basic Data Typing. (line 13) * variable assignments and input files: Other Arguments. (line 26) @@ -36140,10 +36161,10 @@ Index * variables, uninitialized, as array subscripts: Uninitialized Subscripts. (line 6) * variables, user-defined: Variables. (line 6) -* version of gawk: Auto-set. (line 241) -* version of gawk extension API: Auto-set. (line 266) -* version of GNU MP library: Auto-set. (line 249) -* version of GNU MPFR library: Auto-set. (line 251) +* version of gawk: Auto-set. (line 262) +* version of gawk extension API: Auto-set. (line 287) +* version of GNU MP library: Auto-set. (line 270) +* version of GNU MPFR library: Auto-set. (line 272) * vertical bar (|): Regexp Operators. (line 70) * vertical bar (|), | operator (I/O): Getline/Pipe. (line 10) * vertical bar (|), | operator (I/O) <1>: Precedence. (line 64) @@ -36422,371 +36443,370 @@ Node: Exit Statement454653 Node: Built-in Variables457056 Node: User-modified458189 Node: Auto-set465956 -Ref: Auto-set-Footnote-1482258 -Ref: Auto-set-Footnote-2482464 -Node: ARGC and ARGV482520 -Node: Pattern Action Summary486733 -Node: Arrays489163 -Node: Array Basics490492 -Node: Array Intro491336 -Ref: figure-array-elements493311 -Ref: Array Intro-Footnote-1496015 -Node: Reference to Elements496143 -Node: Assigning Elements498607 -Node: Array Example499098 -Node: Scanning an Array500857 -Node: Controlling Scanning503879 -Ref: Controlling Scanning-Footnote-1509278 -Node: Numeric Array Subscripts509594 -Node: Uninitialized Subscripts511778 -Node: Delete513397 -Ref: Delete-Footnote-1516149 -Node: Multidimensional516206 -Node: Multiscanning519301 -Node: Arrays of Arrays520892 -Node: Arrays Summary525660 -Node: Functions527753 -Node: Built-in528791 -Node: Calling Built-in529872 -Node: Numeric Functions531868 -Ref: Numeric Functions-Footnote-1535896 -Ref: Numeric Functions-Footnote-2536253 -Ref: Numeric Functions-Footnote-3536301 -Node: String Functions536573 -Ref: String Functions-Footnote-1560431 -Ref: String Functions-Footnote-2560559 -Ref: String Functions-Footnote-3560807 -Node: Gory Details560894 -Ref: table-sub-escapes562685 -Ref: table-sub-proposed564204 -Ref: table-posix-sub565567 -Ref: table-gensub-escapes567108 -Ref: Gory Details-Footnote-1567931 -Node: I/O Functions568085 -Ref: table-system-return-values574553 -Ref: I/O Functions-Footnote-1576633 -Ref: I/O Functions-Footnote-2576781 -Node: Time Functions576901 -Ref: Time Functions-Footnote-1587572 -Ref: Time Functions-Footnote-2587640 -Ref: Time Functions-Footnote-3587798 -Ref: Time Functions-Footnote-4587909 -Ref: Time Functions-Footnote-5588021 -Ref: Time Functions-Footnote-6588248 -Node: Bitwise Functions588514 -Ref: table-bitwise-ops589108 -Ref: Bitwise Functions-Footnote-1595171 -Ref: Bitwise Functions-Footnote-2595344 -Node: Type Functions595535 -Node: I18N Functions598286 -Node: User-defined599937 -Node: Definition Syntax600742 -Ref: Definition Syntax-Footnote-1606429 -Node: Function Example606500 -Ref: Function Example-Footnote-1609422 -Node: Function Caveats609444 -Node: Calling A Function609962 -Node: Variable Scope610920 -Node: Pass By Value/Reference613914 -Node: Return Statement617413 -Node: Dynamic Typing620392 -Node: Indirect Calls621322 -Ref: Indirect Calls-Footnote-1631574 -Node: Functions Summary631702 -Node: Library Functions634407 -Ref: Library Functions-Footnote-1638014 -Ref: Library Functions-Footnote-2638157 -Node: Library Names638328 -Ref: Library Names-Footnote-1641788 -Ref: Library Names-Footnote-2642011 -Node: General Functions642097 -Node: Strtonum Function643200 -Node: Assert Function646222 -Node: Round Function649548 -Node: Cliff Random Function651088 -Node: Ordinal Functions652104 -Ref: Ordinal Functions-Footnote-1655167 -Ref: Ordinal Functions-Footnote-2655419 -Node: Join Function655629 -Ref: Join Function-Footnote-1657399 -Node: Getlocaltime Function657599 -Node: Readfile Function661341 -Node: Shell Quoting663318 -Node: Data File Management664719 -Node: Filetrans Function665351 -Node: Rewind Function669447 -Node: File Checking671357 -Ref: File Checking-Footnote-1672691 -Node: Empty Files672892 -Node: Ignoring Assigns674871 -Node: Getopt Function676421 -Ref: Getopt Function-Footnote-1687890 -Node: Passwd Functions688090 -Ref: Passwd Functions-Footnote-1696929 -Node: Group Functions697017 -Ref: Group Functions-Footnote-1704915 -Node: Walking Arrays705122 -Node: Library Functions Summary708130 -Node: Library Exercises709536 -Node: Sample Programs710001 -Node: Running Examples710771 -Node: Clones711499 -Node: Cut Program712723 -Node: Egrep Program722652 -Ref: Egrep Program-Footnote-1730164 -Node: Id Program730274 -Node: Split Program733954 -Ref: Split Program-Footnote-1737412 -Node: Tee Program737541 -Node: Uniq Program740331 -Node: Wc Program747757 -Ref: Wc Program-Footnote-1752012 -Node: Miscellaneous Programs752106 -Node: Dupword Program753319 -Node: Alarm Program755349 -Node: Translate Program760204 -Ref: Translate Program-Footnote-1764769 -Node: Labels Program765039 -Ref: Labels Program-Footnote-1768390 -Node: Word Sorting768474 -Node: History Sorting772546 -Node: Extract Program774381 -Node: Simple Sed782435 -Node: Igawk Program785509 -Ref: Igawk Program-Footnote-1799840 -Ref: Igawk Program-Footnote-2800042 -Ref: Igawk Program-Footnote-3800164 -Node: Anagram Program800279 -Node: Signature Program803341 -Node: Programs Summary804588 -Node: Programs Exercises805802 -Ref: Programs Exercises-Footnote-1809931 -Node: Advanced Features810022 -Node: Nondecimal Data812012 -Node: Array Sorting813603 -Node: Controlling Array Traversal814303 -Ref: Controlling Array Traversal-Footnote-1822671 -Node: Array Sorting Functions822789 -Ref: Array Sorting Functions-Footnote-1827880 -Node: Two-way I/O828076 -Ref: Two-way I/O-Footnote-1835797 -Ref: Two-way I/O-Footnote-2835984 -Node: TCP/IP Networking836066 -Node: Profiling839184 -Ref: Profiling-Footnote-1847869 -Node: Advanced Features Summary848192 -Node: Internationalization850036 -Node: I18N and L10N851516 -Node: Explaining gettext852203 -Ref: Explaining gettext-Footnote-1858095 -Ref: Explaining gettext-Footnote-2858280 -Node: Programmer i18n858445 -Ref: Programmer i18n-Footnote-1863394 -Node: Translator i18n863443 -Node: String Extraction864237 -Ref: String Extraction-Footnote-1865369 -Node: Printf Ordering865455 -Ref: Printf Ordering-Footnote-1868241 -Node: I18N Portability868305 -Ref: I18N Portability-Footnote-1870761 -Node: I18N Example870824 -Ref: I18N Example-Footnote-1874084 -Ref: I18N Example-Footnote-2874157 -Node: Gawk I18N874266 -Node: I18N Summary874911 -Node: Debugger876252 -Node: Debugging877272 -Node: Debugging Concepts877713 -Node: Debugging Terms879522 -Node: Awk Debugging882097 -Ref: Awk Debugging-Footnote-1883042 -Node: Sample Debugging Session883174 -Node: Debugger Invocation883708 -Node: Finding The Bug885094 -Node: List of Debugger Commands891568 -Node: Breakpoint Control892901 -Node: Debugger Execution Control896595 -Node: Viewing And Changing Data899957 -Node: Execution Stack903331 -Node: Debugger Info904968 -Node: Miscellaneous Debugger Commands909039 -Node: Readline Support914101 -Node: Limitations914997 -Node: Debugging Summary917106 -Node: Arbitrary Precision Arithmetic918385 -Node: Computer Arithmetic919870 -Ref: table-numeric-ranges923636 -Ref: table-floating-point-ranges924129 -Ref: Computer Arithmetic-Footnote-1924787 -Node: Math Definitions924844 -Ref: table-ieee-formats928160 -Ref: Math Definitions-Footnote-1928763 -Node: MPFR features928868 -Node: FP Math Caution930586 -Ref: FP Math Caution-Footnote-1931658 -Node: Inexactness of computations932027 -Node: Inexact representation932987 -Node: Comparing FP Values934347 -Node: Errors accumulate935588 -Node: Getting Accuracy937021 -Node: Try To Round939731 -Node: Setting precision940630 -Ref: table-predefined-precision-strings941327 -Node: Setting the rounding mode943157 -Ref: table-gawk-rounding-modes943531 -Ref: Setting the rounding mode-Footnote-1947462 -Node: Arbitrary Precision Integers947641 -Ref: Arbitrary Precision Integers-Footnote-1950816 -Node: Checking for MPFR950965 -Node: POSIX Floating Point Problems952439 -Ref: POSIX Floating Point Problems-Footnote-1956724 -Node: Floating point summary956762 -Node: Dynamic Extensions958952 -Node: Extension Intro960505 -Node: Plugin License961771 -Node: Extension Mechanism Outline962568 -Ref: figure-load-extension963007 -Ref: figure-register-new-function964572 -Ref: figure-call-new-function965664 -Node: Extension API Description967726 -Node: Extension API Functions Introduction969368 -Node: General Data Types974908 -Ref: General Data Types-Footnote-1983269 -Node: Memory Allocation Functions983568 -Ref: Memory Allocation Functions-Footnote-1987778 -Node: Constructor Functions987877 -Node: Registration Functions991463 -Node: Extension Functions992148 -Node: Exit Callback Functions997363 -Node: Extension Version String998613 -Node: Input Parsers999276 -Node: Output Wrappers1011997 -Node: Two-way processors1016509 -Node: Printing Messages1018774 -Ref: Printing Messages-Footnote-11019945 -Node: Updating ERRNO1020098 -Node: Requesting Values1020837 -Ref: table-value-types-returned1021574 -Node: Accessing Parameters1022510 -Node: Symbol Table Access1023745 -Node: Symbol table by name1024257 -Node: Symbol table by cookie1026046 -Ref: Symbol table by cookie-Footnote-11030231 -Node: Cached values1030295 -Ref: Cached values-Footnote-11033831 -Node: Array Manipulation1033984 -Ref: Array Manipulation-Footnote-11035075 -Node: Array Data Types1035112 -Ref: Array Data Types-Footnote-11037770 -Node: Array Functions1037862 -Node: Flattening Arrays1042360 -Node: Creating Arrays1049336 -Node: Redirection API1054103 -Node: Extension API Variables1056936 -Node: Extension Versioning1057647 -Ref: gawk-api-version1058076 -Node: Extension GMP/MPFR Versioning1059807 -Node: Extension API Informational Variables1061435 -Node: Extension API Boilerplate1062508 -Node: Changes from API V11066482 -Node: Finding Extensions1068054 -Node: Extension Example1068613 -Node: Internal File Description1069411 -Node: Internal File Ops1073491 -Ref: Internal File Ops-Footnote-11084841 -Node: Using Internal File Ops1084981 -Ref: Using Internal File Ops-Footnote-11087364 -Node: Extension Samples1087638 -Node: Extension Sample File Functions1089167 -Node: Extension Sample Fnmatch1096816 -Node: Extension Sample Fork1098303 -Node: Extension Sample Inplace1099521 -Node: Extension Sample Ord1102738 -Node: Extension Sample Readdir1103574 -Ref: table-readdir-file-types1104463 -Node: Extension Sample Revout1105268 -Node: Extension Sample Rev2way1105857 -Node: Extension Sample Read write array1106597 -Node: Extension Sample Readfile1108539 -Node: Extension Sample Time1109634 -Node: Extension Sample API Tests1110982 -Node: gawkextlib1111474 -Node: Extension summary1114392 -Node: Extension Exercises1118094 -Node: Language History1119592 -Node: V7/SVR3.11121248 -Node: SVR41123400 -Node: POSIX1124834 -Node: BTL1126214 -Node: POSIX/GNU1126943 -Node: Feature History1132721 -Node: Common Extensions1148580 -Node: Ranges and Locales1149863 -Ref: Ranges and Locales-Footnote-11154479 -Ref: Ranges and Locales-Footnote-21154506 -Ref: Ranges and Locales-Footnote-31154741 -Node: Contributors1154962 -Node: History summary1160907 -Node: Installation1162287 -Node: Gawk Distribution1163231 -Node: Getting1163715 -Node: Extracting1164678 -Node: Distribution contents1166316 -Node: Unix Installation1172796 -Node: Quick Installation1173478 -Node: Shell Startup Files1175892 -Node: Additional Configuration Options1176981 -Node: Configuration Philosophy1179274 -Node: Non-Unix Installation1181643 -Node: PC Installation1182103 -Node: PC Binary Installation1182941 -Node: PC Compiling1183376 -Node: PC Using1184493 -Node: Cygwin1187708 -Node: MSYS1188807 -Node: VMS Installation1189308 -Node: VMS Compilation1190099 -Ref: VMS Compilation-Footnote-11191328 -Node: VMS Dynamic Extensions1191386 -Node: VMS Installation Details1193071 -Node: VMS Running1195324 -Node: VMS GNV1199603 -Node: VMS Old Gawk1200338 -Node: Bugs1200809 -Node: Bug address1201472 -Node: Usenet1204454 -Node: Maintainers1205458 -Node: Other Versions1206719 -Node: Installation summary1213633 -Node: Notes1214835 -Node: Compatibility Mode1215629 -Node: Additions1216411 -Node: Accessing The Source1217336 -Node: Adding Code1218773 -Node: New Ports1224992 -Node: Derived Files1229480 -Ref: Derived Files-Footnote-11235126 -Ref: Derived Files-Footnote-21235161 -Ref: Derived Files-Footnote-31235759 -Node: Future Extensions1235873 -Node: Implementation Limitations1236531 -Node: Extension Design1237714 -Node: Old Extension Problems1238858 -Ref: Old Extension Problems-Footnote-11240376 -Node: Extension New Mechanism Goals1240433 -Ref: Extension New Mechanism Goals-Footnote-11243797 -Node: Extension Other Design Decisions1243986 -Node: Extension Future Growth1246099 -Node: Notes summary1246935 -Node: Basic Concepts1248110 -Node: Basic High Level1248791 -Ref: figure-general-flow1249073 -Ref: figure-process-flow1249758 -Ref: Basic High Level-Footnote-11253059 -Node: Basic Data Typing1253244 -Node: Glossary1256572 -Node: Copying1288410 -Node: GNU Free Documentation License1325953 -Node: Index1351073 +Ref: Auto-set-Footnote-1482763 +Ref: Auto-set-Footnote-2482969 +Node: ARGC and ARGV483025 +Node: Pattern Action Summary487238 +Node: Arrays489668 +Node: Array Basics490997 +Node: Array Intro491841 +Ref: figure-array-elements493816 +Ref: Array Intro-Footnote-1496520 +Node: Reference to Elements496648 +Node: Assigning Elements499112 +Node: Array Example499603 +Node: Scanning an Array501362 +Node: Controlling Scanning504384 +Ref: Controlling Scanning-Footnote-1509783 +Node: Numeric Array Subscripts510099 +Node: Uninitialized Subscripts512283 +Node: Delete513902 +Ref: Delete-Footnote-1516654 +Node: Multidimensional516711 +Node: Multiscanning519806 +Node: Arrays of Arrays521397 +Node: Arrays Summary526165 +Node: Functions528258 +Node: Built-in529296 +Node: Calling Built-in530377 +Node: Numeric Functions532373 +Ref: Numeric Functions-Footnote-1536401 +Ref: Numeric Functions-Footnote-2536758 +Ref: Numeric Functions-Footnote-3536806 +Node: String Functions537078 +Ref: String Functions-Footnote-1560936 +Ref: String Functions-Footnote-2561064 +Ref: String Functions-Footnote-3561312 +Node: Gory Details561399 +Ref: table-sub-escapes563190 +Ref: table-sub-proposed564709 +Ref: table-posix-sub566072 +Ref: table-gensub-escapes567613 +Ref: Gory Details-Footnote-1568436 +Node: I/O Functions568590 +Ref: table-system-return-values575058 +Ref: I/O Functions-Footnote-1577138 +Ref: I/O Functions-Footnote-2577286 +Node: Time Functions577406 +Ref: Time Functions-Footnote-1588077 +Ref: Time Functions-Footnote-2588145 +Ref: Time Functions-Footnote-3588303 +Ref: Time Functions-Footnote-4588414 +Ref: Time Functions-Footnote-5588526 +Ref: Time Functions-Footnote-6588753 +Node: Bitwise Functions589019 +Ref: table-bitwise-ops589613 +Ref: Bitwise Functions-Footnote-1595676 +Ref: Bitwise Functions-Footnote-2595849 +Node: Type Functions596040 +Node: I18N Functions598791 +Node: User-defined600442 +Node: Definition Syntax601247 +Ref: Definition Syntax-Footnote-1606934 +Node: Function Example607005 +Ref: Function Example-Footnote-1609927 +Node: Function Caveats609949 +Node: Calling A Function610467 +Node: Variable Scope611425 +Node: Pass By Value/Reference614419 +Node: Return Statement617918 +Node: Dynamic Typing620897 +Node: Indirect Calls621827 +Ref: Indirect Calls-Footnote-1632079 +Node: Functions Summary632207 +Node: Library Functions634912 +Ref: Library Functions-Footnote-1638519 +Ref: Library Functions-Footnote-2638662 +Node: Library Names638833 +Ref: Library Names-Footnote-1642293 +Ref: Library Names-Footnote-2642516 +Node: General Functions642602 +Node: Strtonum Function643705 +Node: Assert Function646727 +Node: Round Function650053 +Node: Cliff Random Function651593 +Node: Ordinal Functions652609 +Ref: Ordinal Functions-Footnote-1655672 +Ref: Ordinal Functions-Footnote-2655924 +Node: Join Function656134 +Ref: Join Function-Footnote-1657904 +Node: Getlocaltime Function658104 +Node: Readfile Function661846 +Node: Shell Quoting663823 +Node: Data File Management665224 +Node: Filetrans Function665856 +Node: Rewind Function669952 +Node: File Checking671862 +Ref: File Checking-Footnote-1673196 +Node: Empty Files673397 +Node: Ignoring Assigns675376 +Node: Getopt Function676926 +Ref: Getopt Function-Footnote-1688395 +Node: Passwd Functions688595 +Ref: Passwd Functions-Footnote-1697434 +Node: Group Functions697522 +Ref: Group Functions-Footnote-1705420 +Node: Walking Arrays705627 +Node: Library Functions Summary708635 +Node: Library Exercises710041 +Node: Sample Programs710506 +Node: Running Examples711276 +Node: Clones712004 +Node: Cut Program713228 +Node: Egrep Program723157 +Ref: Egrep Program-Footnote-1730669 +Node: Id Program730779 +Node: Split Program734459 +Ref: Split Program-Footnote-1737917 +Node: Tee Program738046 +Node: Uniq Program740836 +Node: Wc Program748262 +Ref: Wc Program-Footnote-1752517 +Node: Miscellaneous Programs752611 +Node: Dupword Program753824 +Node: Alarm Program755854 +Node: Translate Program760709 +Ref: Translate Program-Footnote-1765274 +Node: Labels Program765544 +Ref: Labels Program-Footnote-1768895 +Node: Word Sorting768979 +Node: History Sorting773051 +Node: Extract Program774886 +Node: Simple Sed782940 +Node: Igawk Program786014 +Ref: Igawk Program-Footnote-1800345 +Ref: Igawk Program-Footnote-2800547 +Ref: Igawk Program-Footnote-3800669 +Node: Anagram Program800784 +Node: Signature Program803846 +Node: Programs Summary805093 +Node: Programs Exercises806307 +Ref: Programs Exercises-Footnote-1810436 +Node: Advanced Features810527 +Node: Nondecimal Data812517 +Node: Array Sorting814108 +Node: Controlling Array Traversal814808 +Ref: Controlling Array Traversal-Footnote-1823176 +Node: Array Sorting Functions823294 +Ref: Array Sorting Functions-Footnote-1828385 +Node: Two-way I/O828581 +Ref: Two-way I/O-Footnote-1836302 +Ref: Two-way I/O-Footnote-2836489 +Node: TCP/IP Networking836571 +Node: Profiling839689 +Node: Advanced Features Summary848707 +Node: Internationalization850551 +Node: I18N and L10N852031 +Node: Explaining gettext852718 +Ref: Explaining gettext-Footnote-1858610 +Ref: Explaining gettext-Footnote-2858795 +Node: Programmer i18n858960 +Ref: Programmer i18n-Footnote-1863909 +Node: Translator i18n863958 +Node: String Extraction864752 +Ref: String Extraction-Footnote-1865884 +Node: Printf Ordering865970 +Ref: Printf Ordering-Footnote-1868756 +Node: I18N Portability868820 +Ref: I18N Portability-Footnote-1871276 +Node: I18N Example871339 +Ref: I18N Example-Footnote-1874599 +Ref: I18N Example-Footnote-2874672 +Node: Gawk I18N874781 +Node: I18N Summary875426 +Node: Debugger876767 +Node: Debugging877787 +Node: Debugging Concepts878228 +Node: Debugging Terms880037 +Node: Awk Debugging882612 +Ref: Awk Debugging-Footnote-1883557 +Node: Sample Debugging Session883689 +Node: Debugger Invocation884223 +Node: Finding The Bug885609 +Node: List of Debugger Commands892083 +Node: Breakpoint Control893416 +Node: Debugger Execution Control897110 +Node: Viewing And Changing Data900472 +Node: Execution Stack903846 +Node: Debugger Info905483 +Node: Miscellaneous Debugger Commands909554 +Node: Readline Support914616 +Node: Limitations915512 +Node: Debugging Summary917621 +Node: Arbitrary Precision Arithmetic918900 +Node: Computer Arithmetic920385 +Ref: table-numeric-ranges924151 +Ref: table-floating-point-ranges924644 +Ref: Computer Arithmetic-Footnote-1925302 +Node: Math Definitions925359 +Ref: table-ieee-formats928675 +Ref: Math Definitions-Footnote-1929278 +Node: MPFR features929383 +Node: FP Math Caution931101 +Ref: FP Math Caution-Footnote-1932173 +Node: Inexactness of computations932542 +Node: Inexact representation933502 +Node: Comparing FP Values934862 +Node: Errors accumulate936103 +Node: Getting Accuracy937536 +Node: Try To Round940246 +Node: Setting precision941145 +Ref: table-predefined-precision-strings941842 +Node: Setting the rounding mode943672 +Ref: table-gawk-rounding-modes944046 +Ref: Setting the rounding mode-Footnote-1947977 +Node: Arbitrary Precision Integers948156 +Ref: Arbitrary Precision Integers-Footnote-1951331 +Node: Checking for MPFR951480 +Node: POSIX Floating Point Problems952954 +Ref: POSIX Floating Point Problems-Footnote-1957239 +Node: Floating point summary957277 +Node: Dynamic Extensions959467 +Node: Extension Intro961020 +Node: Plugin License962286 +Node: Extension Mechanism Outline963083 +Ref: figure-load-extension963522 +Ref: figure-register-new-function965087 +Ref: figure-call-new-function966179 +Node: Extension API Description968241 +Node: Extension API Functions Introduction969883 +Node: General Data Types975423 +Ref: General Data Types-Footnote-1983784 +Node: Memory Allocation Functions984083 +Ref: Memory Allocation Functions-Footnote-1988293 +Node: Constructor Functions988392 +Node: Registration Functions991978 +Node: Extension Functions992663 +Node: Exit Callback Functions997878 +Node: Extension Version String999128 +Node: Input Parsers999791 +Node: Output Wrappers1012512 +Node: Two-way processors1017024 +Node: Printing Messages1019289 +Ref: Printing Messages-Footnote-11020460 +Node: Updating ERRNO1020613 +Node: Requesting Values1021352 +Ref: table-value-types-returned1022089 +Node: Accessing Parameters1023025 +Node: Symbol Table Access1024260 +Node: Symbol table by name1024772 +Node: Symbol table by cookie1026561 +Ref: Symbol table by cookie-Footnote-11030746 +Node: Cached values1030810 +Ref: Cached values-Footnote-11034346 +Node: Array Manipulation1034499 +Ref: Array Manipulation-Footnote-11035590 +Node: Array Data Types1035627 +Ref: Array Data Types-Footnote-11038285 +Node: Array Functions1038377 +Node: Flattening Arrays1042875 +Node: Creating Arrays1049851 +Node: Redirection API1054618 +Node: Extension API Variables1057451 +Node: Extension Versioning1058162 +Ref: gawk-api-version1058591 +Node: Extension GMP/MPFR Versioning1060322 +Node: Extension API Informational Variables1061950 +Node: Extension API Boilerplate1063023 +Node: Changes from API V11066997 +Node: Finding Extensions1068569 +Node: Extension Example1069128 +Node: Internal File Description1069926 +Node: Internal File Ops1074006 +Ref: Internal File Ops-Footnote-11085356 +Node: Using Internal File Ops1085496 +Ref: Using Internal File Ops-Footnote-11087879 +Node: Extension Samples1088153 +Node: Extension Sample File Functions1089682 +Node: Extension Sample Fnmatch1097331 +Node: Extension Sample Fork1098818 +Node: Extension Sample Inplace1100036 +Node: Extension Sample Ord1103253 +Node: Extension Sample Readdir1104089 +Ref: table-readdir-file-types1104978 +Node: Extension Sample Revout1105783 +Node: Extension Sample Rev2way1106372 +Node: Extension Sample Read write array1107112 +Node: Extension Sample Readfile1109054 +Node: Extension Sample Time1110149 +Node: Extension Sample API Tests1111497 +Node: gawkextlib1111989 +Node: Extension summary1114907 +Node: Extension Exercises1118609 +Node: Language History1120107 +Node: V7/SVR3.11121763 +Node: SVR41123915 +Node: POSIX1125349 +Node: BTL1126729 +Node: POSIX/GNU1127458 +Node: Feature History1133236 +Node: Common Extensions1149282 +Node: Ranges and Locales1150565 +Ref: Ranges and Locales-Footnote-11155181 +Ref: Ranges and Locales-Footnote-21155208 +Ref: Ranges and Locales-Footnote-31155443 +Node: Contributors1155664 +Node: History summary1161609 +Node: Installation1162989 +Node: Gawk Distribution1163933 +Node: Getting1164417 +Node: Extracting1165380 +Node: Distribution contents1167018 +Node: Unix Installation1173498 +Node: Quick Installation1174180 +Node: Shell Startup Files1176594 +Node: Additional Configuration Options1177683 +Node: Configuration Philosophy1179848 +Node: Non-Unix Installation1182217 +Node: PC Installation1182677 +Node: PC Binary Installation1183515 +Node: PC Compiling1183950 +Node: PC Using1185067 +Node: Cygwin1188620 +Node: MSYS1189719 +Node: VMS Installation1190220 +Node: VMS Compilation1191011 +Ref: VMS Compilation-Footnote-11192240 +Node: VMS Dynamic Extensions1192298 +Node: VMS Installation Details1193983 +Node: VMS Running1196236 +Node: VMS GNV1200515 +Node: VMS Old Gawk1201250 +Node: Bugs1201721 +Node: Bug address1202384 +Node: Usenet1205366 +Node: Maintainers1206370 +Node: Other Versions1207631 +Node: Installation summary1214545 +Node: Notes1215747 +Node: Compatibility Mode1216541 +Node: Additions1217323 +Node: Accessing The Source1218248 +Node: Adding Code1219685 +Node: New Ports1225904 +Node: Derived Files1230392 +Ref: Derived Files-Footnote-11236038 +Ref: Derived Files-Footnote-21236073 +Ref: Derived Files-Footnote-31236671 +Node: Future Extensions1236785 +Node: Implementation Limitations1237443 +Node: Extension Design1238626 +Node: Old Extension Problems1239770 +Ref: Old Extension Problems-Footnote-11241288 +Node: Extension New Mechanism Goals1241345 +Ref: Extension New Mechanism Goals-Footnote-11244709 +Node: Extension Other Design Decisions1244898 +Node: Extension Future Growth1247011 +Node: Notes summary1247847 +Node: Basic Concepts1249022 +Node: Basic High Level1249703 +Ref: figure-general-flow1249985 +Ref: figure-process-flow1250670 +Ref: Basic High Level-Footnote-11253971 +Node: Basic Data Typing1254156 +Node: Glossary1257484 +Node: Copying1289322 +Node: GNU Free Documentation License1326865 +Node: Index1351985 End Tag Table |