Problem with scatter/gather IO

Randi Botse <[email protected]> Wed, 13 Jul 2011 18:54:45 +0700
Newsgroups org.kernel.vger.linux-c-programming
Message-ID <CAA6iF_6Y4VbHSKnNMYhAhTjf=ZoQZxwO+nqYPmV=R5=6c=KKiQ@mail.gmail.com>
Hi,

I will read/write file with readv() and writev(), I have problem to
use that since the struct iovec will be a variable-length array, if i
have code.

struct foo {
    unsigned char data[100];
    unsigned char another_data[28];
};
unsigned len;
....

/* calculate len */
/* use len as array's member size */
struct iovec iov[len];
printf("len is: %i\n", len);
readv(fd, iov, len);

I got: BAD ADDRESS, and if I remove the printf() then I will get
INVALID ARGUMENT. What the possible problem with that?

Thanks,