S. Alexander Jacobson wrote:

> This code works echos lines properly under GHCi,
> but just sucks in input when running the GHC
> compiled executable.
> 
>   import IO
>   main= do
>         x<-hGetLine stdin
>         putStr x
>         main
> 
> Am I doing something wrong?

GHCi automatically disables buffering on stdout for its own purposes.

Compiled binaries don't; they should have the same default behaviour
as programs which are written in C (stdin/stdout are line buffered if
they are correspond to a terminal, and fully buffered otherwise;
stderr is always unbuffered).

Either:

1. Use putStrLn instead of putStr.
2. Call "hFlush stdout" after each call to putStr.
3. Call "hSetBuffering stdout NoBuffering" before the first call to putStr.

-- 
Glynn Clements <[EMAIL PROTECTED]>
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to