Используя этот код
let _ =
let buffer = Bytes.create 100 in
let bytes_read = Unix.read Unix.stdin buffer 0 100 in
print_endline (String.escaped (String.trim buffer))
Я получаю
asd\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000
при вводе строки "asd", что означает, что символ \n
не обрезается из буфера. Это из-за различной реализации строк в более поздних версиях OCaml? Что здесь происходит?
Я использую OCaml 4.05.0, ARM CPU (RockPro64), Ubuntu 18.