book cover

Errata for The Unix Programming Environment

Fri Feb 23 16:54:41 EST 2001

In some printing, over-zealous printers whited out critical characters like periods, back-quotes, and the like in the belief that they were fly-specks. The discussion of shell quoting conventions in such copies will be challenging.

14, 1/3 down: "least recent use" should be "least recent modification".

44, line -4: "system" should be "program".

58, last line: "directory" should be "directory entry".

70, line 4: "an fascinating" should be "a fascinating".

81, near bottom: echo $PATH does not print PATH=.

92, "the ed's ! command" should be "ed's ! command".

103, 1/3 down: "which when applied to the output...".

104, below output: "the shell protects the patterns from interpretation...".

121, first program: test if (NF > 0) is unnecessary.

124, line -9: should be "After the files have been read".

161, middle: for i is the same as for i in "$@"; blanks in argument are not treated specially, ...".

178, else clause: the value of argv[0] is wrong if there was a -s argument.

183, middle: clobbers a real character if the line is too long; this also appears on 187 and 191.

184, first sentence: "The file pointer tty ...".

184, middle: This also requires changing PAGESIZE to pagelen throughout.

198, top: missing declarations of n, though it compiled anyway. Also, the temporary files are left in the current directory.

206, 3/4 down: Unlink removes the name; the file goes away if this is the last link.

209, line -3: "file" is more accurately "file name".

234, line -5: syntax error is on line 5. Similarly, line 2 on page 240.

247: line -11: "easy to change the symbol table...".

251, middle: "when the context is a perfectly legal one...".

256, end of program: the comment "everything else" should be on the next line.

272, line -10: "when a statement ...".

278, second code: int (**defn)().

279, line 5: delete (Inst) cast.

325, v command: "Print all non-empty lines."