read

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/read.2.html
readのエラーに関して、

fd が接続しているオブジェクトによっては他のエラーも起こりえる。 POSIX では、 いくらかのデータを読んだ後に割り込みが起こった場合、 read() は (errno に EINTR を設定して) -1 を返してもよいし、 既に読み込んだバイト数を返してもよい。

へー。そうなんだ。