+static ssize_t retry_writev(int fd, const struct iovec *iov, int iovcnt) {
+ ssize_t Res;
+ errno = 0;
+ ssize_t i = 0;
+ do {
+ Res = writev(fd, iov + i, iovcnt);
+ if (Res < 0 && errno == EINTR)
+ continue;
+ if (Res < 0)
+ return _error->Errno("writev",_("Write error"));
+ iovcnt -= Res;
+ i += Res;
+ } while (Res > 0 && iovcnt > 0);
+ return i;
+}