diff options
Diffstat (limited to 'libiberty/rename.c')
-rw-r--r-- | libiberty/rename.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libiberty/rename.c b/libiberty/rename.c new file mode 100644 index 0000000..ae26e2d --- /dev/null +++ b/libiberty/rename.c @@ -0,0 +1,22 @@ +/* rename -- rename a file + This function is in the public domain. */ + +/* Rename a file. */ + +#include <errno.h> + +int +rename (zfrom, zto) + char *zfrom; + char *zto; +{ + if (link (zfrom, zto) < 0) + { + if (errno != EEXIST) + return -1; + if (unlink (zto) < 0 + || link (zfrom, zto) < 0) + return -1; + } + return unlink (zfrom); +} |