let cat files cout =
  let buffer = String.create 2048 in
  List.iter
    (fun f ->
       let cin = open_in f in
       try
         Command.copy buffer cin cout ;
         close_in cin
       with e ->
         close_in cin ; raise e)
    files