[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