Add a copy file routine

Add io_file_cp() which can be used to copy an existing source file to
another location. We will need this for our new hash-based note file
names.

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2011-08-02 21:10:31 +02:00
parent 9dcb377a64
commit c7b56ca556
2 changed files with 34 additions and 0 deletions

View File

@ -693,6 +693,7 @@ void io_set_lock (void);
unsigned io_dump_pid (char *);
unsigned io_get_pid (char *);
int io_file_is_empty (char *);
int io_file_cp (const char *, const char *);
/* keys.c */
void keys_init (void);

View File

@ -3050,3 +3050,36 @@ io_file_is_empty (char *file)
return -1;
}
/*
* Copy an existing file to a new location.
*/
int
io_file_cp (const char *src, const char *dst)
{
FILE *fp_src, *fp_dst;
char *buffer[BUFSIZ];
unsigned int bytes_read;
if (!(fp_src = fopen (src, "rb")))
return 0;
if (!(fp_dst = fopen (dst, "wb")))
return 0;
while (!feof (fp_src))
{
bytes_read = fread (buffer, 1, BUFSIZ, fp_src);
if (bytes_read > 0)
{
if (fwrite (buffer, 1, bytes_read, fp_dst) != bytes_read)
return 0;
}
else
return 0;
}
fclose (fp_dst);
fclose (fp_src);
return 1;
}