Difference between revisions of "Talk:Library/Streams"

From HaskellWiki
Jump to navigation Jump to search
(Notes about using the library, particularly, stdin and stdout.)
 
m
Line 2: Line 2:
   
 
- bufferBlockStream
 
- bufferBlockStream
  +
 
- withEncoding utf8
 
- withEncoding utf8
  +
 
- withLocking
 
- withLocking
   

Revision as of 02:29, 13 November 2006

To be able to read and write to a file with functions such as vGetContents and vPutStrLn I think it is mandatory to define some of

- bufferBlockStream

- withEncoding utf8

- withLocking

I am sure the first one is needed, I thought the other two wasn't but then I had trouble without them. The trouble is shown as a ugly message and abortion of the program at run-time:

 *** Exception: illegal operation

I had to even add those layers to standard input and standard output, without them it was impossible to print and read. I ended up with something like:

inStream  <- bufferBlockStream fdStdIn  >>= withEncoding utf8 >>= withLocking

outStream <- bufferBlockStream fdStdOut >>= withEncoding utf8 >>= withLocking

Maybe this can be improved somehow in the library, but otherwise I believe it should be documented.