Fwd: Problem with scatter/gather IO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ahh,, you are right Leon, each iov member need to be initialized
first, my bad. Everything is OK now. I also use sysconf(_SC_IOV_MAX)
to determine maximum iovs count.

Thanks,


On Wed, Jul 13, 2011 at 7:16 PM, Leon Romanovsky <leon@xxxxxxx> wrote:
> 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


[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux