Messages in this thread | | | Date | Wed, 23 Jul 2003 15:29:03 -0400 (EDT) | From | Glenn Fowler <> | Subject | Re: kernel bug in socketpair() |
| |
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
- 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/
| |