blob: 69efcc8d88cf0793e2aa66f66e2f6d296b1a67eb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
open Big_int
open Error
let acquire_char_list (fname : string) =
let char_list = ref [] in
try
let ic = open_in_bin fname in
while true do
let c = input_char ic in
let _ = char_list := c :: !char_list in
()
done;
let _ = close_in ic in
Fail "acquire_char_list: the impossible happened"
with End_of_file ->
Success (List.rev !char_list)
;;
let serialise_char_list (fname : string) bytes =
let rec go oc bytes =
match bytes with
| [] -> ()
| x::xs -> output_char oc x; go oc xs
in
try
let oc = open_out_bin fname in
let _ = go oc bytes in
let _ = close_out oc in
Success ()
with _ ->
Fail "serialise_char_list: unable to open file for writing"
;;
|