Date: Tue, 03 Feb 2004 16:54:18 +0000 From: Peter Edwards <peter.edwards@openet-telecom.com> To: =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no> Cc: current@FreeBSD.org Subject: Re: Coalescing pipe allocation Message-ID: <401FD23A.9070407@openet-telecom.com> In-Reply-To: <xzpektc6rwo.fsf@dwp.des.no> References: <Pine.NEB.3.96L.1040131234955.17012E-100000@fledge.watson.org> <401FCCBE.2010008@openet-telecom.com> <xzpektc6rwo.fsf@dwp.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
Dag-Erling Smørgrav wrote: >Peter Edwards <peter.edwards@openet-telecom.com> writes: > > >>How would one "shut down" one direction of the pipe and still maintain >>the other? I don't know how I can signal my intention not to read or >>write to the end I leave open... >> >> > >man 2 shutdown > > Shutdown requires a socket, and won't play with pipes: $ cat t.c #include <sys/types.h> #include <sys/socket.h> #include <err.h> #include <unistd.h> int main() { int p[2]; if (pipe(p) == -1) err(-1, "pipe"); if (shutdown(p[0], SHUT_RD) == -1) err(-1, "shutdown"); return 0; } $ cc -o t ./t.c $ ./t ./t: shutdown: Socket operation on non-socket $ > > >>Is this portability issue so ridiculously out of date that the comment >>in the pipe(2) manpage should be removed, or at least toned down? >> >> > >No, POSIX only guarantees the traditional behaviour. Bi-directional >pipes are a non-portable BSDism. > > > >> It >>seems silly to incur the costs of implementation you've mentioned and >>then recommend that the feature not be used. >> >> > >It can still be useful for programs in the base system, which do not >need to be unconditionally portable to non-BSD systems. > > Fair 'nuff.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?401FD23A.9070407>