Current Path : /usr/src/contrib/gcclibs/libiberty/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/src/contrib/gcclibs/libiberty/rename.c |
/* rename -- rename a file This function is in the public domain. */ /* @deftypefn Supplemental int rename (const char *@var{old}, const char *@var{new}) Renames a file from @var{old} to @var{new}. If @var{new} already exists, it is removed. @end deftypefn */ #include "ansidecl.h" #ifdef HAVE_CONFIG_H #include "config.h" #endif #include <errno.h> #ifdef HAVE_UNISTD_H #include <unistd.h> #endif int rename (const char *zfrom, const 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); }