[erlang-questions] open_pipe({spawn, "cat"}) --- how to close stdin of cat?

Anthony Shipman <>
Sun Mar 1 14:49:28 CET 2009

On Sun, 1 Mar 2009 09:48:36 pm C K Tan wrote:
> Michael,
> Without closing stdin of wc, wc never returns because it thought there
> are more data coming.
> wc(InputText) ->
>    P = open_port({spawn, "wc"}, [stream, exit_status, use_stdio,
>                            stderr_to_stdout, in, out, eof]),
>    port_command(P, InputText),
>    %% P ! {self(), {eof}},   %% ERROR -- how to close stdin of the wc
> process? receive {P, X} -> X end,
>    port_close(P).

What I have done is use an intermediate shell script. I write EOF or some 
similar marker to the port and the shell script closes the stdin for the 
command it controls.

Anthony Shipman                    Mamas don't let your babies 
                   grow up to be outsourced.

More information about the erlang-questions mailing list