
On Wed, Dec 9, 2009 at 6:00 PM, Brandon S. Allbery KF8NH < allbery@ece.cmu.edu> wrote:
On Dec 9, 2009, at 16:51 , Bas van Dijk wrote:
I will change the types to:
stdin :: Handle ReadMode stdout :: Handle WriteMode stderr :: Handle WriteMode
Or are there scenarios where people want to write to stdin or read from stdout or stderr?
These situations *do* come up; the controlling terminal for a program is open read/write on all 3 file descriptors initially, ands programs like more/less/pg rely on this and do their I/O on stdout. Additionally, on *BSD pipes are actually socketpairs and therefore bidirectional, and a small number of programs rely on this.
I was surprised to hear this, so I did some fact checking: http://books.google.com/books?id=rHyMRyDEG3gC&pg=PA39&lpg=PA39&dq=posix+write+to+stdin&source=bl&ots=vHsgioIR8J&sig=PPXTzuwuuxyx_peCnuSNVmE220I&hl=en&ei=o6cgS-DxJ5S0sgPSl82kBQ&sa=X&oi=book_result&ct=result&resnum=3&ved=0CA8Q6AEwAjgK#v=onepage&q=&f=false Looks like you're telling the truth. Learn something new every time I read Haskell-Cafe :) Jason