2

I の場合、関数open Core.Stdを使用して an を閉じようとするとエラーが発生します。これは、Core が の型シグネチャを変更して非推奨のエラー メッセージを表示するためです。close_outout_channelclose_out

close_out;;
- : [ `Deprecated_use_out_channel ] -> [ `Deprecated_use_out_channel ] = <fun>

最初の質問: Core が deprecated なのにclose_outdeprecated ではないのはなぜclose_out_noerrですか?

2 番目の質問: Core は引き続きin_channels とout_channels を使用することを期待していますか? それとも、IO に別の API を使用することを好みますか?

3 番目の質問:私が見つけた唯一の他の IO API は、readまたはモジュールwrite内の関数Unixであり、ファイル ハンドルではなくファイル記述子で動作します。C では、ファイル記述子関数は syscall を直接発行しますが、受信FILE *する stdio.h からの関数はバッファリングされた IO を行います。これは Ocaml で、syscall を直接発行する Unix モジュールの関数と、in_channelバッファout_channelリングされた IO を操作して実行する関数に似ていますか?

4

2 に答える 2