Commit | Line | Data |
---|---|---|
ea19f6e0 DW |
1 | /* |
2 | char id_rename[] = "@(#)rename_.c 1.1"; | |
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 | ||
16 | long | |
17 | rename_ (from, to, frlen, tolen) | |
18 | char *from, *to; | |
19 | long frlen, tolen; | |
20 | { | |
21 | char frbuf[256]; | |
22 | char tobuf[256]; | |
23 | ||
24 | if (frlen <= 0 || tolen <= 0 || *from == ' ' || *to == ' ') | |
25 | return ((long)(errno = F_ERARG)); | |
26 | if (frlen >= sizeof frbuf || tolen >= sizeof tobuf) | |
27 | return ((long)(errno = F_ERARG)); | |
28 | g_char (from, frlen, frbuf); | |
29 | g_char (to, tolen, tobuf); | |
30 | if (rename (from, to) != 0) | |
31 | return ((long)errno); | |
32 | return (0L); | |
33 | } |