Haskell是否有内置保护以避免从键盘输入或从文件读取时缓冲区溢出?
只要你不使用任何unsafe
函数,也不使用FFI(接口到C), GHC运行时系统保证你不会有缓冲区溢出。
是学院式的,有可能你调用一个库,它实现了一个安全的函数使用unsafe
函数在一个不正确的方式,触发缓冲区溢出,但这是相当不可能的,因为有相对较少的库利用unsafe
函数,而这些通常是大量测试。
为了完整起见,GHC运行时也可能有自己的错误,但是-再次-这是不可能的。
当我们写Haskell代码时,我们通常假装这些unsafe
函数不存在。