This commit was generated by cvs2svn to track changes on a CVS vendor
[external/binutils.git] / libiberty / rename.c
1 /* rename -- rename a file
2    This function is in the public domain. */
3
4 /* Rename a file.  */
5
6 #include <errno.h>
7
8 int
9 rename (zfrom, zto)
10      char *zfrom;
11      char *zto;
12 {
13   if (link (zfrom, zto) < 0)
14     {
15       if (errno != EEXIST)
16         return -1;
17       if (unlink (zto) < 0
18           || link (zfrom, zto) < 0)
19         return -1;
20     }
21   return unlink (zfrom);
22 }