如果 I open Core.Std,尝试使用close_out函数关闭 anout_channel会给我一个错误,因为 Core 更改了的类型签名close_out给我一个弃用错误消息。
close_out;;
- : [ `Deprecated_use_out_channel ] -> [ `Deprecated_use_out_channel ] = <fun>
第一个问题:为什么 Core deprecate close_outdeprecated 但不弃用close_out_noerr?
第二个问题: Core 仍然希望我使用in_channels 和out_channels 还是更喜欢我为 IO 使用不同的 API?
第三个问题:我能找到的唯一其他 IO API 是类似read或模块write中的函数Unix,它们适用于文件描述符而不是文件句柄。在 C 中,文件描述符函数直接发出系统调用,而来自 stdio.h 的那些接收FILE *缓冲 IO。这在 Ocaml 中是否类似于 Unix 模块中的函数直接发出系统调用以及使用in_channel和out_channel执行缓冲 IO 的函数?