Listing 3

static void do_copy (int infile, int tmp_file, long len)
   {
     int to_do;
     char buffer [SIZE_BUFFER];
     do
         {
         to_do = (int) (min ((long) SIZE_BUFFER, len));
         read (infile, buffer, to_do);
         write (tmp_file, buffer, to_do);
        } while (len -= to do);
     return ;
   }
/* End of File */