
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. But I would not do that by default, just expose a way for programs to make it so if they wish. (Hm, just discovered that the System.Posix.IO wrapper for fcntl() does *not* expose the part of the result of F_GETFL that reports the open mode. Boo hiss.) -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH