Ocaml 如何使用Bigarray.map_文件写入新文件
我想用Bigarray.map_文件创建一个新文件,如下所示:Ocaml 如何使用Bigarray.map_文件写入新文件,ocaml,Ocaml,我想用Bigarray.map_文件创建一个新文件,如下所示: let file_write_ba path = try let fd = Unix.openfile path ~mode:[Unix.O_WRONLY;Unix.O_CREAT] in let ba = Bigarray.array1_of_genarray (Unix.map_file fd ~pos:0L Bigarray.char Bigarray.c_la
let file_write_ba path =
try
let fd = Unix.openfile path ~mode:[Unix.O_WRONLY;Unix.O_CREAT] in
let ba = Bigarray.array1_of_genarray (Unix.map_file fd
~pos:0L Bigarray.char Bigarray.c_layout true [|(-1)|])
in
Some ba
with
| _ -> Printf.printf "some error"; None
let write_chunk ~inba ~outba ~inpos ~outpos ~size =
let sub_in = Bigarray.Array1.sub inba inpos size in
let sub_out = Bigarray.Array1.sub outba outpos size in
Bigarray.Array1.blit sub_in sub_out
let do_write databa =
let outba = file_write_ba "some_temp_file" in
write_chunk databa outba 0 0 (Bigarray.Array1.dim databa)
因此,它无法创建sub_out,但我不知道如何解决在map_文件上扩展bigarray的问题。要提到三件事:
那么,你打算怎么办?将4Gb Bigarray保存到新文件的最简单方法是什么?使用extlinux中的Bigarray写入函数。