On Wed, Jul 13, 2011 at 14:54, Randi Botse <nightdecoder@xxxxxxxxx> wrote: > > 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, > -- Did you try "man readv" ? You didn't initialized iovec struct. http://pubs.opengroup.org/onlinepubs/009695399/functions/readv.html -- Leon Romanovsky | Independent Linux Consultant www.leon.nu | leon@xxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html