Re: splice() on two pipes

From: Jens Axboe
Date: Thu Apr 30 2009 - 02:22:12 EST


On Wed, Apr 29 2009, Max Kellermann wrote:
> Hi,
>
> when I read about the splice() system call, I thought it was obvious
> that it could copy data between two pipes. I was surprised that this
> assumption is wrong, it's not possible on 2.6.29, I get EINVAL. Can
> anybody please explain this limitation?
>
> Background: I want to forward data between two subprocesses, which are
> connected to me with a pipe().
>
> I have attached a small test program which prints a table of supported
> splice operations. Here's the output on 2.6.29.1:
>
> in\out pipe sock reg chr
> pipe no yes yes yes
> sock no no no no
> reg yes no no no
> chr no no no no

See sys_tee().

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/