41#define PG_IOV_MAX Min(IOV_MAX, 128)
48pg_preadv(
int fd,
const struct iovec *iov,
int iovcnt, off_t offset)
56 return pread(
fd, iov[0].iov_base, iov[0].iov_len, offset);
58 return preadv(
fd, iov, iovcnt, offset);
63 for (
int i = 0;
i < iovcnt; ++
i)
65 part =
pg_pread(
fd, iov[
i].iov_base, iov[
i].iov_len, offset);
75 if ((
size_t) part < iov[
i].iov_len)
87pg_pwritev(
int fd,
const struct iovec *iov,
int iovcnt, off_t offset)
95 return pwrite(
fd, iov[0].iov_base, iov[0].iov_len, offset);
97 return pwritev(
fd, iov, iovcnt, offset);
102 for (
int i = 0;
i < iovcnt; ++
i)
104 part =
pg_pwrite(
fd, iov[
i].iov_base, iov[
i].iov_len, offset);
114 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)