Mercurial > hg > CbC > CbC_gcc
comparison libiberty/rename.c @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 /* rename -- rename a file | |
2 This function is in the public domain. */ | |
3 | |
4 /* | |
5 | |
6 @deftypefn Supplemental int rename (const char *@var{old}, const char *@var{new}) | |
7 | |
8 Renames a file from @var{old} to @var{new}. If @var{new} already | |
9 exists, it is removed. | |
10 | |
11 @end deftypefn | |
12 | |
13 */ | |
14 | |
15 #include "ansidecl.h" | |
16 #ifdef HAVE_CONFIG_H | |
17 #include "config.h" | |
18 #endif | |
19 #include <errno.h> | |
20 #ifdef HAVE_UNISTD_H | |
21 #include <unistd.h> | |
22 #endif | |
23 | |
24 int | |
25 rename (const char *zfrom, const char *zto) | |
26 { | |
27 if (link (zfrom, zto) < 0) | |
28 { | |
29 if (errno != EEXIST) | |
30 return -1; | |
31 if (unlink (zto) < 0 | |
32 || link (zfrom, zto) < 0) | |
33 return -1; | |
34 } | |
35 return unlink (zfrom); | |
36 } |