1 #ifndef DINIT_UTIL_H_INCLUDED
2 #define DINIT_UTIL_H_INCLUDED 1
6 // Signal-safe read. Read and re-try if interrupted by signal (EINTR).
7 // *May* affect errno even on a successful read (when the return is less than n).
8 inline ssize_t ss_read(int fd, void * buf, size_t n)
10 char * cbuf = static_cast<char *>(buf);
12 while ((size_t)r < n) {
13 ssize_t res = read(fd, cbuf + r, n - r);
22 // If any other error, and we have successfully read some, return it: