How to send EOF to the popen(3) pipe?

Malcolm Matalka mmatalka at gmail.com
Mon Jan 18 09:29:29 UTC 2016


Yuri <yuri at rawbw.com> writes:

> 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.

The manpage claims that pclose waits for the process to finish and
returns its exit code, is this not true?

"""
     The pclose() function waits for the associated process to terminate
     and
          returns the exit status of the command as returned by
     wait4(2).
"""

>
>> 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
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"


More information about the freebsd-hackers mailing list