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