.RS
.nf
struct group {
- char *gr_name; /* group name */
- char *gr_passwd; /* group password */
- gid_t gr_gid; /* group ID */
- char **gr_mem; /* group members */
+ char *gr_name; /* group name */
+ char *gr_passwd; /* group password */
+ gid_t gr_gid; /* group ID */
+ char **gr_mem; /* group members */
};
.ta
.fi
#include <stdio.h>
#define BUFLEN 4096
-int main() {
- struct group grp, *grpp;
- char buf[BUFLEN];
- int i;
+int
+main(void)
+{
+ struct group grp, *grpp;
+ char buf[BUFLEN];
+ int i;
- setgrent();
- while (1) {
- i = getgrent_r(&grp, buf, BUFLEN, &grpp);
- if (i)
- break;
- printf("%s (%d):", grpp->gr_name, grpp->gr_gid);
- for (i = 0; ; i++) {
- if (grpp->gr_mem[i] == NULL)
- break;
- printf(" %s", grpp->gr_mem[i]);
- }
- printf("\en");
- }
- endgrent();
- return 0;
+ setgrent();
+ while (1) {
+ i = getgrent_r(&grp, buf, BUFLEN, &grpp);
+ if (i)
+ break;
+ printf("%s (%d):", grpp->gr_name, grpp->gr_gid);
+ for (i = 0; ; i++) {
+ if (grpp->gr_mem[i] == NULL)
+ break;
+ printf(" %s", grpp->gr_mem[i]);
+ }
+ printf("\en");
+ }
+ endgrent();
+ return 0;
}
.fi
.\" perhaps add error checking - should use strerror_r
FILE **gr_fp);
.in
.fi
-.sp
.SH NOTES
The function
.BR getgrent_r ()