merge from gcc
[deliverable/binutils-gdb.git] / libiberty / rename.c
CommitLineData
252b5132
RH
1/* rename -- rename a file
2 This function is in the public domain. */
3
4/* Rename a file. */
5
90aaccd1
JL
6#ifdef HAVE_CONFIG_H
7#include "config.h"
8#endif
252b5132 9#include <errno.h>
90aaccd1
JL
10#ifdef HAVE_UNISTD_H
11#include <unistd.h>
12#endif
252b5132
RH
13
14int
15rename (zfrom, zto)
16 char *zfrom;
17 char *zto;
18{
19 if (link (zfrom, zto) < 0)
20 {
21 if (errno != EEXIST)
22 return -1;
23 if (unlink (zto) < 0
24 || link (zfrom, zto) < 0)
25 return -1;
26 }
27 return unlink (zfrom);
28}
This page took 0.062769 seconds and 4 git commands to generate.