Errata


Print Print Icon

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 "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



Version Location Description Submitted By 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 
Printed Page 20
Table 1-2

Changed "EEXIT" to "EEXIST"

Anonymous  Aug 2008
Other Digital Version 20
Table 1-2

Changed "EEXIT" to "EEXIST"

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

Replaced

"−1" with "-1"

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

Replaced

"−1" with "-1"

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

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

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

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

Anonymous  Aug 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 
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 
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 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 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 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 2008
Printed Page 130
3rd paragraph

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

Anonymous  Aug 2008
Other Digital Version 130
3rd paragraph

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

Anonymous  Aug 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 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 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 
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 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 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 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 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 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 2008
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 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 2008
Printed Page 301
top

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

Anonymous  Aug 2008
Other Digital Version 301
top

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

Anonymous  Aug 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 
Printed Page 316
1st paragraph

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

Anonymous  Aug 2008
Other Digital Version 316
1st paragraph

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

Anonymous  Aug 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 
Printed Page 331
1st paragraph

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

Anonymous  Aug 2008
Other Digital Version 331
1st paragraph

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

Anonymous  Aug 2008


"Robert Love takes great care to hold you by the hand as he covers each topic, and you feel that you're in the presence of a true master--which given Love's reputation is genuinely the case. So if you want to have a go at system programming, this should be on your wish-list..."
--Andy Hudson, Linux Format