Messages in this thread | | | Date | Wed, 23 Jul 2003 15:24:32 -0700 | From | jw schultz <> | Subject | Re: kernel bug in socketpair() |
| |
On Wed, Jul 23, 2003 at 03:29:03PM -0400, Glenn Fowler wrote: > > On Wed, 23 Jul 2003 12:14:36 -0700 David S. Miller wrote: > > I missed the reason why you can't use pipes and bash > > is able to, what is it? > > we have some applications, ksh included, with semantics that require > stdin be read at most one line at a time; an inefficient implementation > of this does 1 byte read()s until newline is read; an efficient > implementation does a peek read (without advancing the read/seek offset), > determines how many chars to read up to and including the newline, > and then read()s that much > > linux has ioctl(I_PEEK) for stream devices and recv() for sockets, > and neither of these work on pipes; if there is a linux alternative > for pipes then we'd be glad to use it > > we switched from pipe() to socketpair() to take advantage of the linux > recv() peek read
Perhaps you'd rather code a patch adding peek functionality for pipes.
-- ________________________________________________________________ J.W. Schultz Pegasystems Technologies email address: jw@pegasys.ws
Remember Cernan and Schmitt - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |