Xref: utzoo comp.lang.c:28372 comp.lang.misc:4956 comp.sys.ibm.pc:49879 comp.sys.ibm.pc.programmer:1283 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!pilchuck!dataio!bright From: bright@Data-IO.COM (Walter Bright) Newsgroups: comp.lang.c,comp.lang.misc,comp.sys.ibm.pc,comp.sys.ibm.pc.programmer Subject: Re: questions about a backup program for the MS-DOS environment Keywords: copy Message-ID: <2484@dataio.Data-IO.COM> Date: 2 May 90 21:39:58 GMT References: <255@uecok.UUCP> <1990Apr25.125806.20450@druid.uucp> <12459@wpi.wpi.edu> Reply-To: bright@Data-IO.COM (Walter Bright) Followup-To: comp.lang.c Organization: Data I/O Corporation; Redmond, WA Lines: 85 In article <12459@wpi.wpi.edu> jhallen@wpi.wpi.edu (Joseph H Allen) writes: darcy@druid.UUCP (D'Arcy J.M. Cain) writes: < dcrow@uecok (David Crow -- ECU Student) writes: <<< - possibly a faster copying scheme. the following is the <<< code I am using to copy from one file to another: <<< do <<< { n = fread(buf, sizeof(char), MAXBUF, infile); <<< fwrite(buf, sizeof(char), n, outfile); <<< } while (n == MAXBUF); /* where MAXBUF = 7500 */ <= 128; bufsiz >>= 1) { register char *buffer; buffer = (char *) malloc(bufsiz); if (buffer) { while (1) { register int n; n = read(fdfrom,buffer,bufsiz); if (n == -1) /* if error */ break; if (n == 0) /* if end of file */ { free(buffer); close(fdto); close(fdfrom); return 0; /* success */ } n = write(fdto,buffer,(unsigned) n); if (n == -1) break; } free(buffer); break; } } err2: close(fdto); remove(to); /* delete any partial file */ err: close(fdfrom); return 1; }