cp ml
This commit is contained in:
parent
e0d497acec
commit
669781b86f
30
examples/cp/cp.ml
Normal file
30
examples/cp/cp.ml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
open Printf
|
||||||
|
|
||||||
|
let usage_msg = "append [-verbose] <file1> [<file2>] ... -o <output>"
|
||||||
|
|
||||||
|
let files = ref []
|
||||||
|
let anon_fun filename = files := filename::!files
|
||||||
|
|
||||||
|
let () =
|
||||||
|
Arg.parse [] anon_fun usage_msg;
|
||||||
|
|
||||||
|
let src_file = List.hd !files in
|
||||||
|
files := List.tl !files;
|
||||||
|
|
||||||
|
let dst_file = List.hd !files in
|
||||||
|
files := List.tl !files;
|
||||||
|
|
||||||
|
let ic = open_in src_file in
|
||||||
|
let oc = open_out dst_file in
|
||||||
|
|
||||||
|
|
||||||
|
let buf = Bytes.create 4096 in
|
||||||
|
|
||||||
|
let read = ref 4096 in
|
||||||
|
|
||||||
|
while !read > 0 do
|
||||||
|
(* input ic buf pos len *)
|
||||||
|
read := input ic buf 0 4096;
|
||||||
|
(* output oc buf pos len *)
|
||||||
|
output oc buf 0 !read
|
||||||
|
done
|
Reference in New Issue
Block a user