File 截断ocaml中的文件

File 截断ocaml中的文件,file,ocaml,truncate,File,Ocaml,Truncate,如何在ocaml中将文件截断为大小N 我看不到普适中的函数。最接近的东西是“open\u trunc”标志,我不确定它的功能。我想你是对的。 打开\u trunc-打开命名文件进行写入,并在该文件上返回位于文件开头的新输出通道。如果文件已存在,则该文件将被截断为零长度。如果它不存在,则创建它。如果无法打开文件,则引发系统错误 请参阅此链接。Pervisives的操作系统功能大致相当于您在标准C中可以执行的操作。在标准C中没有将文件截断为指定长度的功能,您所能做的只是在打开文件时将其截断为空(通过

如何在ocaml中将文件截断为大小N

我看不到普适中的函数。最接近的东西是“open\u trunc”标志,我不确定它的功能。

我想你是对的。 打开\u trunc-打开命名文件进行写入,并在该文件上返回位于文件开头的新输出通道。如果文件已存在,则该文件将被截断为零长度。如果它不存在,则创建它。如果无法打开文件,则引发系统错误


请参阅此链接。

Pervisives的操作系统功能大致相当于您在标准C中可以执行的操作。在标准C中没有将文件截断为指定长度的功能,您所能做的只是在打开文件时将其截断为空(通过
open\u trunc
标志公开)。Unix/POSIX()中有一个,因此请在中查找它,它确实有一个函数(或一个打开的文件,请参见下文)。

如果您在Unix下,可以使用

val Unix.truncate : string -> int -> unit
它“将命名文件运行到给定的大小”。 但是这个函数没有在Windows版本的OCaml中实现(或者更准确地说,它没有被模拟)

如果您在Windows下,并且想要模拟它,您可能会对

val really_input : in_channel -> string -> int -> int -> unit
really\u input ic buf pos len
从通道
ic
读取
len
字符,将它们存储在字符串
buf
中,从字符号
pos
开始。如果在读取
len
字符之前到达文件末尾,则提升
文件结尾。提升
无效参数”真正输入“
如果
pos
len
未指定
buf
的有效子字符串”