如何在 ocaml 中将文件截断为 N 大小?
我没有在 Pervasive 中看到函数。最接近的是“open_trunc”标志,我不太确定它的作用。
如果你在 Unix 下,你可以使用
val Unix.truncate : string -> int -> unit
它“将命名文件运行到给定的大小”。但是这个功能在 OCaml 的 Windows 版本中没有实现(或者更准确地说,它没有被模拟)。
如果您在 Windows 下并想模拟它,您可能会对
val really_input : in_channel -> string -> int -> int -> unit
“从通道really_input ic buf pos len
读取字符,将它们存储在字符串中,从字符编号开始。如果在读取字符之前到达文件末尾,则引发。如果并且不指定有效的子字符串,则引发。”len
ic
buf
pos
End_of_file
len
Invalid_argument "really_input"
pos
len
buf
我认为你是对的。 open_trunc - 打开指定文件进行写入,并在该文件上返回一个新的输出通道,位于文件的开头。如果文件已经存在,则将其截断为零长度。如果它不存在,则创建它。如果文件无法打开,则引发Sys_error 。
也参考这个链接。