1 /* 2 char id_rename[] = "@(#)rename_.c 1.2"; 3 * 4 * rename a file atomically 5 * 6 * synopsis: 7 * integer function rename (from, to) 8 * character*(*) from, to 9 * 10 * where: 11 * return value will be zero normally, an error number otherwise. 12 */ 13 14 #include "../libI77/f_errno.h" 15 #include <sys/param.h> 16 #ifndef MAXPATHLEN 17 #define MAXPATHLEN 128 18 #endif 19 20 long 21 rename_ (from, to, frlen, tolen) 22 char *from, *to; 23 long frlen, tolen; 24 { 25 char frbuf[MAXPATHLEN]; 26 char tobuf[MAXPATHLEN]; 27 28 if (frlen <= 0 || tolen <= 0 || *from == ' ' || *to == ' ') 29 return ((long)(errno = F_ERARG)); 30 if (frlen >= sizeof frbuf || tolen >= sizeof tobuf) 31 return ((long)(errno = F_ERARG)); 32 g_char (from, frlen, frbuf); 33 g_char (to, tolen, tobuf); 34 if (rename (from, to) != 0) 35 return ((long)errno); 36 return (0L); 37 } 38