open Unix;;
let rec really_read desc buffer start length =
  if length <= 0 then ()
  else
    match read desc buffer start length with
      0 -> raise End_of_file
    | r -> really_read desc buffer (start+r) (length-r);;