static char *sccsid
= "@(#)mkpasswd.c 4.2 (Berkeley) 83/12/20";
register struct passwd
*pwd
;
int verbose
= 0, entries
= 0, maxlen
= 0;
if (argc
> 1 && strcmp(argv
[1], "-v") == 0) {
fprintf(stderr
, "usage: mkpasswd [ -v ] file\n");
dp
= ndbmopen(argv
[1], O_WRONLY
|O_CREAT
|O_EXCL
, 0644);
fprintf(stderr
, "dbminit failed: ");
while (pwd
= getpwent()) {
#define COMPACT(e) tp = pwd->pw_/**/e; while (*cp++ = *tp++);
*(int *)cp
= pwd
->pw_uid
; cp
+= sizeof (int);
*(int *)cp
= pwd
->pw_gid
; cp
+= sizeof (int);
*(int *)cp
= pwd
->pw_quota
; cp
+= sizeof (int);
content
.dsize
= cp
- buf
;
printf("store %s, uid %d\n", pwd
->pw_name
, pwd
->pw_uid
);
key
.dsize
= strlen(pwd
->pw_name
);
dbmstore(dp
, key
, content
, DB_INSERT
);
key
.dptr
= (char *)&pwd
->pw_uid
;
key
.dsize
= sizeof (int);
dbmstore(dp
, key
, content
, DB_INSERT
);
printf("%d password entries, maximum length %d\n", entries
, maxlen
);