standardize sccs keyword lines
[unix-history] / usr / src / old / groups / groups.c
CommitLineData
476fcd16
SL
1#ifndef lint
2static char sccsid[] = "@(#)groups.c 4.7 (Berkeley) %G%";
3#endif
90aff665
BJ
4
5/*
6 * groups
7 */
8
9#include <sys/param.h>
10#include <grp.h>
11#include <pwd.h>
12
933c83d0 13int groups[NGROUPS];
90aff665
BJ
14
15main(argc, argv)
16 int argc;
17 char *argv[];
18{
a15fc49a 19 int ngroups, i;
90aff665 20 char *sep = "";
a15fc49a 21 struct group *gr;
90aff665 22
a15fc49a
SL
23 if (argc > 1)
24 showgroups(argv[1]);
a43be079
SL
25 ngroups = getgroups(NGROUPS, groups);
26 for (i = 0; i < ngroups; i++) {
27 gr = getgrgid(groups[i]);
28 if (gr == NULL)
29 printf("%s%d", sep, groups[i]);
30 else
31 printf("%s%s", sep, gr->gr_name);
32 sep = " ";
33 }
90aff665
BJ
34 printf("\n");
35 exit(0);
36}
a15fc49a
SL
37
38showgroups(user)
39 register char *user;
40{
41 register struct group *gr;
42 register char **cp;
43 char *sep = "";
44
45 while (gr = getgrent())
46 for (cp = gr->gr_mem; cp && *cp; cp++)
47 if (strcmp(*cp, user) == 0) {
48 printf("%s%s", sep, gr->gr_name);
49 sep = " ";
50 break;
51 }
52 printf("\n");
53 exit(0);
54}