47#define PG_IOV_MAX Min(IOV_MAX, 128)
54pg_preadv(
int fd,
const struct iovec *iov,
int iovcnt, off_t offset)
62 return pread(
fd, iov[0].iov_base, iov[0].iov_len, offset);
64 return preadv(
fd, iov, iovcnt, offset);
69 for (
int i = 0;
i < iovcnt; ++
i)
71 part =
pg_pread(
fd, iov[
i].iov_base, iov[
i].iov_len, offset);
81 if ((
size_t) part < iov[
i].iov_len)
93pg_pwritev(
int fd,
const struct iovec *iov,
int iovcnt, off_t offset)
101 return pwrite(
fd, iov[0].iov_base, iov[0].iov_len, offset);
103 return pwritev(
fd, iov, iovcnt, offset);
108 for (
int i = 0;
i < iovcnt; ++
i)
110 part =
pg_pwrite(
fd, iov[
i].iov_base, iov[
i].iov_len, offset);
120 if ((
size_t) part < iov[
i].iov_len)
static ssize_t pg_pwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset)
static ssize_t pg_preadv(int fd, const struct iovec *iov, int iovcnt, off_t offset)
static int fd(const char *x, int i)