>>262
read(2) の manには

EISDIR fd refers to a directory.

Other errors may occur, depending on the object connected to fd.
POSIX allows a read() that is interrupted after reading some data to
return -1 (with errno set to EINTR) or to return the number of bytes

とある