Utility for copying and renaming files.

Utility for copying and renaming files.

Committer:
ollie8
Date:
Mon Dec 30 20:36:41 2013 +0000
Revision:
0:4be393eec2a2
Child:
1:1f1e0c92b3f8
utility for copying and renaming files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ollie8 0:4be393eec2a2 1
ollie8 0:4be393eec2a2 2 /** fcopy: Copies a file
ollie8 0:4be393eec2a2 3 * Checks to insure destination file was created.
ollie8 0:4be393eec2a2 4 * Returns -1 = error; 0 = success
ollie8 0:4be393eec2a2 5 */
ollie8 0:4be393eec2a2 6 int fcopy (const char *src, const char *dst) {
ollie8 0:4be393eec2a2 7 FILE *fpsrc = fopen(src, "r");
ollie8 0:4be393eec2a2 8 FILE *fpdst = fopen(dst, "w");
ollie8 0:4be393eec2a2 9
ollie8 0:4be393eec2a2 10 int ch = fgetc(fpsrc);
ollie8 0:4be393eec2a2 11 while (ch != EOF) {
ollie8 0:4be393eec2a2 12 fputc(ch, fpdst);
ollie8 0:4be393eec2a2 13 ch = fgetc(fpsrc);
ollie8 0:4be393eec2a2 14 }
ollie8 0:4be393eec2a2 15
ollie8 0:4be393eec2a2 16 fclose(fpsrc);
ollie8 0:4be393eec2a2 17 fclose(fpdst);
ollie8 0:4be393eec2a2 18
ollie8 0:4be393eec2a2 19 int retval = 0;
ollie8 0:4be393eec2a2 20 fpdst = fopen(dst, "r");
ollie8 0:4be393eec2a2 21 if (fpdst == NULL) {
ollie8 0:4be393eec2a2 22 retval = -1;
ollie8 0:4be393eec2a2 23 } else {
ollie8 0:4be393eec2a2 24 fclose(fpdst);
ollie8 0:4be393eec2a2 25 retval = 0;
ollie8 0:4be393eec2a2 26 }
ollie8 0:4be393eec2a2 27 return retval;
ollie8 0:4be393eec2a2 28 }
ollie8 0:4be393eec2a2 29
ollie8 0:4be393eec2a2 30 /** frename: renames a file (via copy & delete).
ollie8 0:4be393eec2a2 31 * Moves data instead of adjusting the file name in the
ollie8 0:4be393eec2a2 32 * file directory. Checks to insure the file was renamed.
ollie8 0:4be393eec2a2 33 * Returns -1 = error; 0 = success
ollie8 0:4be393eec2a2 34 */
ollie8 0:4be393eec2a2 35 int frename(const char *oldfname, const char *newfname) {
ollie8 0:4be393eec2a2 36 int retval = 0;
ollie8 0:4be393eec2a2 37 if (fcopy(oldfname, newfname)) {
ollie8 0:4be393eec2a2 38 remove(oldfname);
ollie8 0:4be393eec2a2 39 }
ollie8 0:4be393eec2a2 40 return retval;
ollie8 0:4be393eec2a2 41 }