Utility for copying and renaming files.
Utility for copying and renaming files.
FileUtils.h@0:4be393eec2a2, 2013-12-30 (annotated)
- 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?
User | Revision | Line number | New 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 | } |