| 4 | #include <errno.h> |
| 5 | |
| 6 | bool write_all(int fd, const void *data, size_t size) |
| 7 | { |
| 8 | while (size) { |
| 9 | ssize_t done; |
| 10 | |
| 11 | done = write(fd, data, size); |
| 12 | if (done < 0 && errno == EINTR) |
| 13 | continue; |
| 14 | if (done <= 0) |
| 15 | return false; |
| 16 | data = (const char *)data + done; |
| 17 | size -= done; |
| 18 | } |
| 19 | |
| 20 | return true; |
| 21 | } |
| 22 | |
| 23 | bool read_all(int fd, void *data, size_t size) |
| 24 | { |
no outgoing calls