X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=fd.c;h=dc3f80f169a3b9494fe1174492f0040d434b949c;hb=4c831a0fd51a9ce4d0cca0061696d62a694815b5;hp=0fb796025945b2c33e59c6c8508d370626ac0c02;hpb=a694ab16b6ff43b545ccd530360b7224433a5b76;p=paraslash.git diff --git a/fd.c b/fd.c index 0fb79602..dc3f80f1 100644 --- a/fd.c +++ b/fd.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "para.h" #include "error.h" @@ -81,6 +82,27 @@ int write_nonblock(int fd, const char *buf, size_t len, return written; } +/** + * Simple wrapper for readv(). + * + * \param fd The file descriptor to read from. + * \param iov Scatter/gather array used in readv(). + * \param iovcnt Number of elements in \a iov. + * + * \return A negative error code on errors, the return value of the underlying + * call to readv() otherwise. + * + * \sa readv(2). + */ +int para_readv(int fd, struct iovec *iov, int iovcnt) +{ + int ret = readv(fd, iov, iovcnt); + + if (ret < 0) + return -ERRNO_TO_PARA_ERROR(errno); + return ret; +} + /** * Check whether a file exists. *