X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=fd.c;h=32d11079267abb8c53db0f2dea5756f77f24d6f5;hp=23b89b5d35a19f0641ca0e506c1be34c2e4eab49;hb=96126295f6d4218fb2b517809455b9c993f8c069;hpb=e7b6f442b4edeaeeb885d171df8267fe15aff472 diff --git a/fd.c b/fd.c index 23b89b5d..32d11079 100644 --- a/fd.c +++ b/fd.c @@ -6,6 +6,7 @@ /** \file fd.c Helper functions for file descriptor handling. */ +#include #include #include #include @@ -15,6 +16,7 @@ #include "para.h" #include "error.h" #include "string.h" + /** * Write a buffer to a file descriptor, re-write on short writes. * @@ -79,6 +81,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. * @@ -419,7 +442,7 @@ out: * \param start The start address of the memory mapping. * \param length The size of the mapping. * - * \return Positive on success, \p -E_MUNMAP on errors. + * \return Standard. * * \sa munmap(2), mmap_full_file(). */