Some Errors I Found in CS:APP

    Recently, I read a photocpoy of the famous book CS:APP. I found several errors and list them all here. I am afraid that these errors may also appear in the original books. However, I don't know if there is a newer version of this book. If so, the newer version may don't have some of these. When you read this book, take care! Notice that, though it has some little errors, it is good enough for every programmer to read. ( NB: The ISBN of my book is 7-5053-9624-2.)

In Part 2.4.4:
    Figure 2.25:
                      $1.40
    Round-to-even:$1
    NOT $1! It should be $2!
In Part 3.14.2:
     In the second picture, of the 8th step,the expression in the picture should be "(a-b)/(-b+c)",NOT "(a+b)/(-b+c)".
In Part 3.14.5:
    In Practice Problem 3.28, in Line 2, another curve is missed.
In Part 6.4.7:
    The sentence "Any additional time required because of a miss.", obviously, is wrong! It should be "Any additional time _is_ required because of a miss."
In Part 6.6.1:
    Below Figure 6.41, it says "Working set sizes start at 1 KB, increasing by a factor of two, to a maximum of 8 MB.". How? Look at the code in the above figure! In fact, it should be "Working set sizes start at 8 MB, decreasing by a factor of two, to a minimum of 1 KB.". It's hard to understand there is such a mistake.
In Homework Problems of Chapter 6:
     In Problem 6.23, it tells us "There is a single L1 data cache that is direct-mapped, write-through,write-allocate, with a block size of 16 bytes.". Er, that's wrong, because "Write-through caches are typically no-write-allocate.", said in Page 503. So that should be "There is a single L1 data cache that is direct-mapped, no-write-through,write-allocate, with a block size of 16 bytes.".
In Part 7.7.2:
    In the last paragraph of "Relocating PC-Relative References", there is a grammar mistake, in the sentence "This is powerful trick...". Should be "This is _a_ powerful...".
In Part 8.4.5:
    The return value of function execve() is 'int', yeah, this is right. Following the prototype of the function, it denotes that this function will return -1 on error. However, in the following, it says "execve is called once and never returns". So the function execve() not only never returns but also returns -1 on error! How funny! In Linux Programmer's Manual,the return value of this function is described like this:
RETURN VALUE
On success, execve() does not return, on error -1 is returned, and
errno is set appropriately.
So execve should be called once and returns once or never returns.
In Part 8.5.2:
    The prototype of function setpgid() is wrong! In Linux Programmer's Manual,it is:
#include < unistd.h>
int setpgid(pid_t pid, pid_t pgid);
It would be very strange if it returns a 'pid_t' value.
In Chapter 9:
    A period is missed in the first sentence of this chapter.
In Solutions to Practice Problems of Chapter 10:
    In the Problem 10.1 Solution, in the last record of the table, when the address bits are 64, the unique addresses are 16,384P, but why not use E? Obviously, using E to scale is better. So it should be 4E !