GRASS 8 Programmer's Manual
8.6.0dev(2026)-f6f2c534ea
Loading...
Searching...
No Matches
copy_file.c
Go to the documentation of this file.
1
/****************************************************************************
2
*
3
* MODULE: GRASS library - copy_file.c
4
* AUTHOR(S): Paul Kelly
5
* PURPOSE: Function to copy one file to another.
6
* COPYRIGHT: (C) 2007 by the GRASS Development Team
7
*
8
* This program is free software under the GNU General Public
9
* License (>=v2). Read the file COPYING that comes with GRASS
10
* for details.
11
*
12
*****************************************************************************/
13
14
#include <
stdio.h
>
15
#include <errno.h>
16
#include <
string.h
>
17
18
#include <
grass/gis.h
>
19
20
/**
21
* \brief Copies one file to another
22
*
23
* Creates a copy of a file. The destination file will be overwritten if it
24
* already exists, so the calling module should check this first if it is
25
* important.
26
*
27
* \param infile String containing path to source file
28
* \param outfile String containing path to destination file
29
*
30
* \return 1 on success; 0 if an error occurred (warning will be printed)
31
**/
32
33
int
G_copy_file
(
const
char
*
infile
,
const
char
*outfile)
34
{
35
FILE
*
infp
, *
outfp
;
36
int
inchar
,
outchar
;
37
38
infp
=
fopen
(
infile
,
"r"
);
39
if
(
infp
==
NULL
) {
40
G_warning
(
"Cannot open %s for reading: %s"
,
infile
,
strerror
(
errno
));
41
return
0;
42
}
43
44
outfp
=
fopen
(outfile,
"w"
);
45
if
(
outfp
==
NULL
) {
46
G_warning
(
"Cannot open %s for writing: %s"
, outfile,
strerror
(
errno
));
47
fclose
(
infp
);
48
return
0;
49
}
50
51
while
((
inchar
=
getc
(
infp
)) !=
EOF
) {
52
/* Read a character at a time from infile until EOF
53
* and copy to outfile */
54
outchar
=
putc
(
inchar
,
outfp
);
55
if
(
outchar
!=
inchar
) {
56
G_warning
(
"Error writing to %s"
, outfile);
57
fclose
(
infp
);
58
fclose
(
outfp
);
59
return
0;
60
}
61
}
62
fflush
(
outfp
);
63
64
fclose
(
infp
);
65
fclose
(
outfp
);
66
67
return
1;
68
}
NULL
#define NULL
Definition
ccmath.h:32
AMI_STREAM
Definition
ami_stream.h:153
G_copy_file
int G_copy_file(const char *infile, const char *outfile)
Copies one file to another.
Definition
copy_file.c:33
G_warning
void G_warning(const char *,...) __attribute__((format(printf
gis.h
stdio.h
string.h
lib
gis
copy_file.c
Generated on Sun Apr 12 2026 06:59:15 for GRASS 8 Programmer's Manual by
1.9.8