+ fd_set all_inputs, ready_inputs;
+ FD_ZERO(&all_inputs);
+ FD_SET(fd, &all_inputs);
+ while (1) {
+ ready_inputs = all_inputs;
+ if (select(fd+1, &ready_inputs, NULL, NULL, NULL) != 1) {
+ err(EX_IOERR, "select");
+ }
+ int read_return = read(fd, &i, sizeof(i));
+ if (read_return == -1) {
+ err(EX_IOERR, "read");
+ }
+ if (read_return != sizeof(i)) {
+ errx(EX_IOERR, "Unexpected EOF");
+ }