
On 1/9/06, Sebastian Sylvan
On 1/9/06, Gracjan Polak
wrote: Hi all,
A bit strange behaviour with hPutStrLn. Consider following program:
main = do handle <- openFile "output.txt" WriteMode hPutStrLn handle (unlines contLines2) -- hFlush houtput where contLines2 = flip map [1..2000] $ \x -> show x ++ " been there done that"
Outputs file which ends with following lines:
1989 been there done that 1990 been there done that 1991 been there done that 1992 been there done that 199 (END)
So the output is truncated. When I uncomment hFlush, file is fully written. Is this expected/documented behaviour?
Platform: WinXP, GHC version 6.4.1
Looks like the buffering is BlockBuffering for your output. Try changing that using hSetBuffering stdout LineBuffering (or NoBuffering).
Err, you'd want to change the buffering on your handle, not stdout, obviously. :-) -- Sebastian Sylvan +46(0)736-818655 UIN: 44640862