1 #include <u.h> 2 #include <libc.h> 3 4 int readgid(char*); 5 int uflag; 6 7 void main(int argc,char * argv[])8main(int argc, char *argv[]) 9 { 10 int i; 11 Dir dir; 12 char *group; 13 char *errs; 14 15 ARGBEGIN { 16 default: 17 usage: 18 fprint(2, "usage: chgrp [ -uo ] group file ....\n"); 19 exits("usage"); 20 return; 21 case 'u': 22 case 'o': 23 uflag++; 24 break; 25 } ARGEND 26 if(argc < 1) 27 goto usage; 28 29 group = argv[0]; 30 errs = 0; 31 for(i=1; i<argc; i++){ 32 nulldir(&dir); 33 if(uflag) 34 dir.uid = group; 35 else 36 dir.gid = group; 37 if(dirwstat(argv[i], &dir) == -1) { 38 fprint(2, "chgrp: can't wstat %s: %r\n", argv[i]); 39 errs = "can't wstat"; 40 continue; 41 } 42 } 43 exits(errs); 44 } 45