Messages in this thread | | | Date | Wed, 29 Apr 2009 21:42:55 +0200 | From | Max Kellermann <> | Subject | Re: splice() on two pipes |
| |
On 2009/04/29 17:23, Andi Kleen <andi@firstfloor.org> wrote: > I don't think splice is about handling all possible cases, > but just cases where the kernel can do better than user space. > I don't think that's the case here.
If splice() is about passing pointers of a pipe buffer, what's more trivial (and natural) than passing that pointer between two pipes?
> > when I read about the splice() system call, I thought it was obvious > > that it could copy data between two pipes. > > It would be more efficient if you used fd passing to pass the fd > around to the other process and let it read directly.
That's not so easy in my case. The header output of the one process has to be parsed before the rest of it (or part of the rest) is going to be forwarded to the second one. My master process would lose control over the transfer. splice() looks like the perfect solution.
Max
| |