On Wed, 17 Mar 2010 12:50:51 +0000 Sad Clouds <cryintotheblue...@googlemail.com> 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.