I の場合、関数open Core.Std
を使用して an を閉じようとするとエラーが発生します。これは、Core が の型シグネチャを変更して非推奨のエラー メッセージを表示するためです。close_out
out_channel
close_out
close_out;;
- : [ `Deprecated_use_out_channel ] -> [ `Deprecated_use_out_channel ] = <fun>
最初の質問: Core が deprecated なのにclose_out
deprecated ではないのはなぜclose_out_noerr
ですか?
2 番目の質問: Core は引き続きin_channel
s とout_channel
s を使用することを期待していますか? それとも、IO に別の API を使用することを好みますか?
3 番目の質問:私が見つけた唯一の他の IO API は、read
またはモジュールwrite
内の関数Unix
であり、ファイル ハンドルではなくファイル記述子で動作します。C では、ファイル記述子関数は syscall を直接発行しますが、受信FILE *
する stdio.h からの関数はバッファリングされた IO を行います。これは Ocaml で、syscall を直接発行する Unix モジュールの関数と、in_channel
バッファout_channel
リングされた IO を操作して実行する関数に似ていますか?