From 779aa8e920d4dd77f241d02ec1c69671a96d7a93 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 21 Dec 2008 23:22:30 +0100 Subject: [PATCH] Add sys_writev (cherry picked from commit 9f6710abfaafa4b918b0c55547d5cd0823a26a56) --- source/lib/system.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/lib/system.c b/source/lib/system.c index eabb6d6dc48..5b06d3c7600 100644 --- a/source/lib/system.c +++ b/source/lib/system.c @@ -142,6 +142,20 @@ ssize_t sys_write(int fd, const void *buf, size_t count) } /******************************************************************* +A writev wrapper that will deal with EINTR. +********************************************************************/ + +ssize_t sys_writev(int fd, const struct iovec *iov, int iovcnt) +{ + ssize_t ret; + + do { + ret = writev(fd, iov, iovcnt); + } while (ret == -1 && errno == EINTR); + return ret; +} + +/******************************************************************* A pread wrapper that will deal with EINTR and 64-bit file offsets. ********************************************************************/ -- 2.11.4.GIT