On Mon, Mar 09, 2020 at 05:22:57PM -0600, Grant Taylor
via TUHS wrote:
On 3/8/20 9:13 AM, Derek Fawcus wrote:
Now what would have been useful is a way to have
distinct fd's for the
local read and write end of (e.g.) a TCP socket - such that one
direction could be closed w/o closing the other.
I believe that this can be done, now. At least I've read that it's possible
for one end to close (FIN) a TCP connection without the other end also
closing. Thus you end up with the one-way data flow that is still ACKed the
way that TCP does.
Yep, in the next sentence Derek mentioned "dispense with shutdown",
meaning the shutdown(2) syscall that does exactly that. What he meant
was, wouldn't it be nice to be able to do that with close(2) instead?
Quite.
One point being that one could fork/exec a program with those fd's attached
to stdin/stdout and it could operate as a normal filter, w/o having to
understand it was using a socket.
(i.e. closing stdout [hence triggering a FIN], while still reading from stdin)
Plus various other games achievable by replumbing fd's.
DF