1#ifdef HAVE_CONFIG_H 2# include "config.h" 3#endif 4#include <fcntl.h> 5#include <unistd.h> 6#include <sys/uio.h> 7#include <assert.h> 8 9int 10main(void) 11{ 12#if defined(HAVE_PREADV) && defined(HAVE_PWRITEV) 13 const off_t offset = 0xdefaceddeadbeefLL; 14 int fd; 15 char buf[4]; 16 struct iovec iov = { buf, sizeof buf }; 17 18 assert((fd = open("/dev/zero", O_RDONLY)) >= 0); 19 assert(pread(fd, buf, sizeof buf, offset) == 4); 20 assert(preadv(fd, &iov, 1, offset) == 4); 21 assert(!close(fd)); 22 23 assert((fd = open("/dev/null", O_WRONLY)) >= 0); 24 assert(pwrite(fd, buf, sizeof buf, offset) == 4); 25 assert(pwritev(fd, &iov, 1, offset) == 4); 26 assert(!close(fd)); 27 28 return 0; 29#else 30 return 77; 31#endif 32} 33