Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jan 2016 09:59:36 -0800
From:      Yuri <yuri@rawbw.com>
To:        "Montgomery-Smith, Stephen" <stephen@missouri.edu>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: How to send EOF to the popen(3) pipe?
Message-ID:  <569A8508.80908@rawbw.com>
In-Reply-To: <5699C8AB.7070006@missouri.edu>
References:  <5699BAC9.3060407@rawbw.com> <5699C8AB.7070006@missouri.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 01/15/2016 20:35, Montgomery-Smith, Stephen wrote:
> Maybe I am displaying my ignorance.  But wouldn't you do this by
> invoking the function pclose?

No, pclose kills the process and returns the exit code. Half-closed 
connection though can be alive for a while, until the other side 
finishes and closes the pipe.

> My memory of using this was that this could gridlock because of
> buffering.  Suppose process A popens a process B.  A sends a message to

Gridlocks are possible if reads/writes are performed in the wrong order. 
But this is besides the point of the original question.

I think the answer to my question is "no". popen(3) can't send EOF. 
Protocol needs to support EOF signal on the application-level.

Yuri



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?569A8508.80908>