tech-kern archive

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

Re: Writing to multiple descriptors with one system call

On Wed, 17 Mar 2010 12:50:51 +0000
Sad Clouds <> wrote:

> Hi is there some undocumented system call that allows a user process
> to write to multiple descriptors in one go?
> What I'm looking for is a variation of writev() system call, e.g.:
> size_t write2v(int *d, int dcnt, const struct iovec *iov, int iovcnt);
> So the application builds an array of file descriptors and an array of
> iovec structures. It then calls write2v(), which goes through each
> file descriptor and writes buffers from iovec structures.

On second thoughts, there needs to be a way to handle partial writes

struct fdvec
        int fd;
        size_t nwritten;

int write2v(
        struct fdvec *fdv, int fdvcnt, const struct iovec *iov, int iovcnt);

For each file descriptor, the function sets nwritten to the number of
bytes written. It returns 0 when all buffers in iovec structures were
written to all file descriptors, otherwise it returns >0 for each file
descriptor that was partially written.

Home | Main Index | Thread Index | Old Index