blocking_read
while ((n = blocking_read(0, &c, 1)) < 0 && errno == EINTR)
int blocking_read ARGS((int, char *, int));
shf->rnleft = blocking_read(shf->fd, (char *) shf->buf,