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