ioinit.f should be in the library
[unix-history] / usr / src / usr.bin / f77 / libU77 / chmod_.c
CommitLineData
e4a6aa87 1/*
05ec41e3 2char id_chmod[] = "@(#)chmod_.c 1.2";
e4a6aa87
DW
3 *
4 * chmod - change file mode bits
5 *
6 * synopsis:
7 * integer function chmod (fname, mode)
8 * character*(*) fname, mode
9 */
10
11#include "../libI77/f_errno.h"
05ec41e3
DW
12#include <sys/param.h>
13#ifndef MAXPATHLEN
14#define MAXPATHLEN 128
15#endif
e4a6aa87
DW
16
17long chmod_(name, mode, namlen, modlen)
18char *name, *mode;
19long namlen, modlen;
20{
05ec41e3 21 char nambuf[MAXPATHLEN];
e4a6aa87
DW
22 char modbuf[32];
23 int retcode;
24
25 if (namlen >= sizeof nambuf || modlen >= sizeof modbuf)
26 return((long)(errno=F_ERARG));
27 g_char(name, namlen, nambuf);
28 g_char(mode, modlen, modbuf);
29 if (nambuf[0] == '\0')
30 return((long)(errno=ENOENT));
31 if (modbuf[0] == '\0')
32 return((long)(errno=F_ERARG));
33 if (fork())
34 {
35 if (wait(&retcode) == -1)
36 return((long)errno);
37 return((long)retcode);
38 }
39 else
40 execl("/bin/chmod", "chmod", modbuf, nambuf, (char *)0);
41}