1*11928Sdlw /* 2*11928Sdlw char id_chmod[] = "@(#)chmod_.c 1.1"; 3*11928Sdlw * 4*11928Sdlw * chmod - change file mode bits 5*11928Sdlw * 6*11928Sdlw * synopsis: 7*11928Sdlw * integer function chmod (fname, mode) 8*11928Sdlw * character*(*) fname, mode 9*11928Sdlw */ 10*11928Sdlw 11*11928Sdlw #include "../libI77/f_errno.h" 12*11928Sdlw 13*11928Sdlw long chmod_(name, mode, namlen, modlen) 14*11928Sdlw char *name, *mode; 15*11928Sdlw long namlen, modlen; 16*11928Sdlw { 17*11928Sdlw char nambuf[256]; 18*11928Sdlw char modbuf[32]; 19*11928Sdlw int retcode; 20*11928Sdlw 21*11928Sdlw if (namlen >= sizeof nambuf || modlen >= sizeof modbuf) 22*11928Sdlw return((long)(errno=F_ERARG)); 23*11928Sdlw g_char(name, namlen, nambuf); 24*11928Sdlw g_char(mode, modlen, modbuf); 25*11928Sdlw if (nambuf[0] == '\0') 26*11928Sdlw return((long)(errno=ENOENT)); 27*11928Sdlw if (modbuf[0] == '\0') 28*11928Sdlw return((long)(errno=F_ERARG)); 29*11928Sdlw if (fork()) 30*11928Sdlw { 31*11928Sdlw if (wait(&retcode) == -1) 32*11928Sdlw return((long)errno); 33*11928Sdlw return((long)retcode); 34*11928Sdlw } 35*11928Sdlw else 36*11928Sdlw execl("/bin/chmod", "chmod", modbuf, nambuf, (char *)0); 37*11928Sdlw } 38