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 (zfrom, zto) 26 const char *zfrom; 27 const char *zto; 28{ 29 if (link (zfrom, zto) < 0) 30 { 31 if (errno != EEXIST) 32 return -1; 33 if (unlink (zto) < 0 34 || link (zfrom, zto) < 0) 35 return -1; 36 } 37 return unlink (zfrom); 38} 39