Read from a file descriptor fd into an iterable of buffers.
The buffers should be mutable buffers accepting bytes.
readv will transfer data into each buffer until it is full
and then move on to the next buffer in the sequence to hold
the rest of the data.
readv returns the total number of bytes read,
which may be less than the total capacity of all the buffers.