AUSAM/source/S/pwzero.c
#include <param.h>
#include <local-system>
#include <passwd.h>
struct { int hiword; unsigned loword; };
main(c,v)
char *v[];
{
struct pwent pe;
register i;
char buf[512];
extern fout;
unsigned used;
int highbd,sflg;
register char *b = buf;
fout = dup(1);
switch(c)
{
case 1: i = 1;
highbd = PWTABSIZE;
break;
case 2:
i = atoi(v[1]);
if( i < 0 ) goto error;
highbd = i+1;
if( highbd > PWTABSIZE )
highbd = PWTABSIZE;
sflg++;
break;
case 3: i = atoi(v[1]);
highbd = atoi(v[2]);
if ( i < 0 ) i = 0;
if(highbd < i ) goto error;
if(highbd > PWTABSIZE)
highbd = PWTABSIZE;
break;
default:
error: prints(2,"Usage: pwscan [uid] | [uidl uidh]\n");
return(-1);
}
for( ; i < highbd; i++)
{
pe.pw_uid = i;
if( getpwlog( &pe, b, 512) <= 0 )
{
if(sflg)
{
prints(2, "Uid not found\n");
return(1);
}
continue;
}
pe.pw_contime = 0;
updtpwent( &pe );
}
flush();
return(0);
}