let copy_channels ?(bufsz = 4096) inch outch =
if (bufsz < 0) || (bufsz > Sys.max_string_length)
then invalid_arg "Filew.copy_channels: bufsz"
else
(let buf = String.make bufsz '\x00' in
let rec inner () =
let have_read = input inch buf 0 bufsz
in
if have_read = 0
then ()
else (output outch buf 0 have_read; inner ())
in inner ())