On 1/9/06, Gracjan Polak <[EMAIL PROTECTED]> 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). I believe it gets flushed if you close the file as well... /S -- Sebastian Sylvan +46(0)736-818655 UIN: 44640862 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe