more issues (we hadn't had enough) Another example for the same problem do { n = write(fd, buf, len); } while (n == -1 && errno == EINTR); in this case, you'd try to cope with a write error, but there was only an interruption by a signal solution: save and restore errno in signal handlers