答案 0 :(得分:2)
base 包的模块GHC.IO.Handle
具有mkFileHandle
功能:
mkFileHandle ::(IODevice dev,BufferedIO dev,Typeable dev)=> dev - > FilePath - > IOMode - >也许TextEncoding - > NewlineMode - > IO句柄
IODevice
和BufferedIO
是为类设备提供基本句柄操作的类型类。特别是,IODevice
具有close
方法。
您可以创建自己的虚拟设备类型,为其定义这两个实例(使用close
抛出异常),然后使用mkFileHandle
获取可用的Handle
。< / p>
有关如何执行此操作的示例,请参阅knob包的代码。