[erlang-questions] escript cutting output

Bengt Kleberg <>
Thu Nov 17 10:19:44 CET 2011


Greetings,

Erlang IO is handled by a separate process. It is probably still
outputting when your escript exits.
Using "|cat" speed up the output.
Using timer:sleep() wait for it to finish.
Both are right. You are not doing anything wrong.


bengt

On Thu, 2011-11-17 at 09:54 +0100, Samuel wrote:
> S***t! Now I'm reaching the list, but gmail ate all my whitespace.
> Reformatted below:
> 
> Hi,
> 
> I'm having trouble with an escript that outputs quite a lot of
> information and I'm not sure where I have to look for a clean
> solution. I traced my problem down to next simple escript:
> 
> ---
> #!/usr/bin/env escript
> 
> main(_) ->
>    io:format("~p~p~n", [lists:duplicate(100000, $a), b]).
> ---
> 
> If I run this in a linux terminal emulator the output gets cut
> somewhere in the middle of the a characters, the b never shows:
> 
> $ io_test
> "aaaaaaaaaaa.....aaa$
> 
> I found several ways of getting it to work, but none convincing. E.g.:
> 
>  * Putting cat in the middle:
> 
> $ io_test | cat
> "aaaaa...aaaaaaaa"b
> $
> 
>  * Putting a timer:sleep(1000) after the io:format works also
> 
> I tried calling init:stop() before exiting in the hope of it waiting
> for the io system to exit clenaly, but that didn't make any
> difference.
> 
> Any ideas about what I'm doing wrong?




More information about the erlang-questions mailing list