let buffer_length = 1024 in
let buffer = String.create buffer_length in
try
while true do
(* Read up to buffer_length bytes into the buffer: *)
let n = Unix.read Unix.stdin buffer 0 buffer_length in
(* If n=0, the end of input is reached. Otherwise we have
* read n bytes.
*)
if n=0 then
raise End_of_file;
(* Convert: *)
let buffer' = String.uppercase (String.sub buffer 0 n) in
(* Write the buffer' contents: *)
let m = ref 0 in
while !m < n do
m := !m + Unix.write Unix.stdout buffer' !m (n - !m)
done
done
with
End_of_file -> ()