Не похоже, что это сделано спецом. Скорей всего вскрыл следующий
баг. А где конкретно ? Это?
- return recv (scb->fd, (char *) scb->buf, count, 0);
+ int result = recv (scb->fd, (char *) scb->buf, count, 0);
+ if (result == -1 && errno != EINTR)
+ perror_with_name ("error while reading");
+ return result;