I'm also encountering this bug with updated Ubuntu 14.04 but only on 32-bit installations.
I have another program to reproduce it, included below. This program makes it to printing out OK on the 64-bit version. #include <stdlib.h> #include <stdio.h> #include <string.h> #include <sys/uio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <assert.h> int main() { struct iovec vec[1]; char* buf; size_t buflen = 4096; char* data = "aaaaaaaaaaaaaaaaaaaa"; int datalen = strlen(data); int fd; ssize_t got; buf = malloc(buflen); assert(buf); vec[0].iov_base = buf; vec[0].iov_len = buflen; // open file fd = open("tmp.data", O_RDWR | O_CREAT, S_IRWXU); assert(fd>=0); // copy data to buf memset(buf, 0, buflen); memcpy(buf, data, datalen); vec[0].iov_base = buf; vec[0].iov_len = datalen; // write data got = pwritev(fd, vec, 1, 0); //got = pwrite(fd, buf, datalen, 0); if( got == - 1 ) perror("in write"); assert(got == datalen); // clear buf memset(buf, 0, buflen); // read data vec[0].iov_base = buf; vec[0].iov_len = buflen; got = preadv(fd, vec, 1, 0); //got = pread(fd, buf, buflen, 0); if( got == - 1 ) perror("in read"); assert(got == datalen); // check data assert(0 == memcmp(data, buf, datalen)); close(fd); unlink("tmp.data"); printf("OK\n"); return 0; } -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1309818 Title: pwritev() doesn't work anymore on i386 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1309818/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs