#include <fcntl.h> #include <unistd.h> #include <sys/uio.h> #include <assert.h> int main(void) { const off_t offset = 0xdefaceddeadbeefLL; int fd; char buf[4]; struct iovec iov = { buf, sizeof buf }; assert((fd = open("/dev/zero", O_RDONLY)) >= 0); assert(pread(fd, buf, sizeof buf, offset) == 4); assert(preadv(fd, &iov, 1, offset) == 4); assert(!close(fd)); assert((fd = open("/dev/null", O_WRONLY)) >= 0); assert(pwrite(fd, buf, sizeof buf, offset) == 4); assert(pwritev(fd, &iov, 1, offset) == 4); assert(!close(fd)); return 0; }