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 ())