rename.c revision 169696
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 8Renames a file from @var{old} to @var{new}. If @var{new} already 9exists, 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 24int 25rename (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} 37