projects
/
unix-history
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
Research V7 development
[unix-history]
/
usr
/
src
/
cmd
/
chgrp.c
/*
* chgrp gid file ...
*/
#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <grp.h>
struct
group
*
gr
,*
getgrnam
();
struct
stat stbuf
;
int
gid
;
int
status
;
main
(
argc
,
argv
)
char
*
argv
[];
{
register
c
;
if
(
argc
<
3
) {
printf
(
"usage: chgrp gid file ...
\n
"
);
exit
(
4
);
}
if
(
isnumber
(
argv
[
1
])) {
gid
=
atoi
(
argv
[
1
]);
}
else
{
if
((
gr
=
getgrnam
(
argv
[
1
])) ==
NULL
) {
printf
(
"unknown group: %s
\n
"
,
argv
[
1
]);
exit
(
4
);
}
gid
=
gr
->
gr_gid
;
}
for
(
c
=
2
;
c
<
argc
;
c
++) {
stat
(
argv
[
c
], &
stbuf
);
if
(
chown
(
argv
[
c
],
stbuf
.
st_uid
,
gid
) <
0
) {
perror
(
argv
[
c
]);
status
=
1
;
}
}
exit
(
status
);
}
isnumber
(
s
)
char
*
s
;
{
register
c
;
while
(
c
= *
s
++)
if
(!
isdigit
(
c
))
return
(
0
);
return
(
1
);
}