Linux System Programming

Errata for Linux System Programming

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted Date Corrected
Printed
Page 6
First sentence

"ABI,but" instead of "ABI, but"

Note from the Author or Editor:
Change "ABI,but" to "ABI, but"

Anonymous  Sep 04, 2008 
Printed
Page 20
Table 1-2

Changed "EEXIT" to "EEXIST"

Anonymous    Aug 01, 2008
Other Digital Version
20
Table 1-2

Changed "EEXIT" to "EEXIST"

Anonymous    Aug 01, 2008
Printed
Page 66
In the code sample on the bottom of page page 66

Replaced "−1" with "-1"

Anonymous    Aug 01, 2008
Other Digital Version
66
In the code sample on the bottom of page page 66

Replaced "−1" with "-1"

Anonymous    Aug 01, 2008
Printed
Page 76
Erros and End-of-file

Changed "include <stdio.h>" to "#include <stdio.h>"

Anonymous    Aug 01, 2008
Other Digital Version
76
Erros and End-of-file

Changed "include <stdio.h>" to "#include <stdio.h>"

Anonymous    Aug 01, 2008
PDF
Page 78
code example on bottom of page

in the comment /* set stdin to block-buffered with a BUFSIZ buffer */ change stdin to stdout

Anonymous  Aug 14, 2008 
Printed
Page 84
1st paragraph

Change "writes to a vector of buffers from a single data stream" to "writes from a vector of buffers to a single data stream".

Anonymous  Aug 21, 2008 
Printed
Page 86
bottom of the page

Changed "iov[i].iov_len = strlen(buf[i]);" to "iov[i].iov_len = strlen(buf[i]) + 1;"

Anonymous    Aug 01, 2008
Other Digital Version
86
bottom of the page

Changed "iov[i].iov_len = strlen(buf[i]);" to "iov[i].iov_len = strlen(buf[i]) + 1;"

Anonymous    Aug 01, 2008
Printed
Page 115
2nd paragraph (end)

Changed "physical block n tends to be physically adjacent on disk to logical block n + 1" to "logical block n tends to be physically-adjacent on disk to logical block n + 1"

Anonymous    Aug 01, 2008
Other Digital Version
115
2nd paragraph (end)

Changed "physical block n tends to be physically adjacent on disk to logical block n + 1" to "logical block n tends to be physically-adjacent on disk to logical block n + 1"

Anonymous    Aug 01, 2008
Printed
Page 130
3rd paragraph

Changed "exec1()" to "execl()"

Anonymous    Aug 01, 2008
Other Digital Version
130
3rd paragraph

Changed "exec1()" to "execl()"

Anonymous    Aug 01, 2008
Printed
Page 151
bottom of 2nd paragraph from the top

Changed "the saved user ID is the effective user ID before a suid binary" to "the saved user ID is the effective user ID from before a suid binary"

Anonymous    Aug 01, 2008
Other Digital Version
151
bottom of 2nd paragraph from the top

Changed "the saved user ID is the effective user ID before a suid binary" to "the saved user ID is the effective user ID from before a suid binary"

Anonymous    Aug 01, 2008
Other Digital Version
179
last bullet of "The first in, first out policy"

The text says "When a process joins the FIFO class, or when a process' static priority changes, it is put at the head of the list of processes for its given priority. Consequently, a newly prioritized FIFO-classed process can preempt an executing process of the same priority." This appears incorrect. The 2.6.22 implementation puts the process at the tail of the list. sched_setscheduler() calls __activate_task() calls enqueue_task() calls list_add_tail().

Note from the Author or Editor:
On p179, change: "When a process joins the FIFO class, or when a process' static priority changes, it is put at the head of the list of processes for its given priority. Consequently, a newly prioritized FIFO-classed process can preempt an executing process of the same priority." to "When a process joins the FIFO class, or when a process's static priority changes, it is put at the tail of the list of processes for its given priority."

Chris Friesen  Feb 17, 2009 
Printed
Page 189
the code snippet at the bottom of the page

Changed: CPU_CLR (1, &set); /* forbid CPU #1 */ to: CPU_SET (1, &set); /* allow CPU #1 */

Anonymous    Aug 01, 2008
Other Digital Version
189
the code snippet at the bottom of the page

Changed: CPU_CLR (1, &set); /* forbid CPU #1 */ to: CPU_SET (1, &set); /* allow CPU #1 */

Anonymous    Aug 01, 2008
Printed
Page 193
Paragraph in middle of page

replaced the paragraph that begins starting with "The kernel stores the limit ..." and ending with "... by that user" with this text - The kernel manages the resource limits on a per-process basis. A child process inherits its limits from its parent during fork; limits are maintained across exec.

Anonymous    Aug 01, 2008
Other Digital Version
193
Paragraph in middle of page

replaced the paragraph that begins starting with "The kernel stores the limit ..." and ending with "... by that user" with this text - The kernel manages the resource limits on a per-process basis. A child process inherits its limits from its parent during fork; limits are maintained across exec.

Anonymous    Aug 01, 2008
Printed
Page 203
1st paragraph

Changed: chmod("manifest.txt", -1, gr->gr_gid); and perror ("chmod"); To: chown("manifest.txt", -1, gr->gr_gid); and perror ("chown");

Anonymous    Aug 01, 2008
Other Digital Version
203
1st paragraph

Changed: chmod("manifest.txt", -1, gr->gr_gid); and perror ("chmod"); To: chown("manifest.txt", -1, gr->gr_gid); and perror ("chown");

Anonymous    Aug 01, 2008
PDF
Page 225
sample code in the middle of the page

in the sample code: ret = link( "/home/kidd/privateer", /home/kidd/pirate"); should be the following ret = link( "/home/kidd/privateer", "/home/kidd/pirate"); The original codes miss a quote(").

Money  Dec 01, 2009 
Printed
Page 238
Code example at the bottom of the page

Changed: char buf[BUF_LEN]_attribute_((aligned(4)))); To: char buf[BUF_LEN] __attribute__((aligned(4)));

Anonymous    Aug 01, 2008
Other Digital Version
238
Code example at the bottom of the page

Changed: char buf[BUF_LEN]_attribute_((aligned(4)))); To: char buf[BUF_LEN] __attribute__((aligned(4)));

Anonymous    Aug 01, 2008
Printed
Page 301
top

Changed "The sigaction_t structure opens" to "The siginfo_t structure opens"

Anonymous    Aug 01, 2008
Other Digital Version
301
top

Changed "The sigaction_t structure opens" to "The siginfo_t structure opens"

Anonymous    Aug 01, 2008
Printed
Page 316
1st paragraph

Previous erratum: {316} 1st paragraph; Changed "tv.usec" to "tv.tv_usec" in the code snippet. Add to it: Change "tv.sec" to "tv.tv_sec" in the code snippet.

Anonymous  Aug 20, 2008 
Printed
Page 316
1st paragraph

Changed "tv.usec" to "tv.tv_usec" in the code snippet.

Anonymous    Aug 01, 2008
Other Digital Version
316
1st paragraph

Changed "tv.usec" to "tv.tv_usec" in the code snippet.

Anonymous    Aug 01, 2008
Printed
Page 331
1st paragraph

A preexisting erratum says, "(331) 1st paragraph; Changed the repeated "seconds seconds" to just "seconds" This is wrong--the first "seconds" is in a sans serif font, as it's a variable name from the preceding code snippet; i.e., its presence is correct. Better would be to (1) change the variable name in the snippet on the preceding page ("seconds") to something else (e.g. "secs"), and then (2) change the above to "secs seconds" (with "secs" in the sans serif font). Note that the two fonts are rather too similar (which confused whoever wrote the erratum), and the code font should be bolder in the text, as it is in the code snippets introducing functions throughout the book. I'll add a (3) here, and suggest: Show ALL code samples (snippets as well as function intros) in the "emphasized" sans serif font. (Remember what we were taught as editing newbies--don't go crazy with the numerous font options available with your new word processor!) ...and now, back to reading my excellent book.

Anonymous  Aug 20, 2008 
Printed
Page 331
1st paragraph

Changed the repeated "seconds seconds" to just "seconds"

Anonymous    Aug 01, 2008
Other Digital Version
331
1st paragraph

Changed the repeated "seconds seconds" to just "seconds"

Anonymous    Aug 01, 2008