void setspent(void);
void endspent(void);
getspnam是linux函数库中访问shadow的口令。
getspnam() 函数功能:访问shadow口令
原型定义:struct spwd *getspnam(char *name);
struct spwd* getspent( void );
获得访问影子密码文件的接口。
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <pwd.h>
#include <shadow.h>
int main(int argc, char * argv[])
{
struct spwd *sp;
char buf[80];
setpwent();
while(gets(buf) != NULL)
{
if((sp = getspnam(buf)) != (struct spwd *) 0 )
{
printf("Vaild login name is:%s\n",sp->sp_namp);
}
else
{
setspent();
while((sp = getspent()) != (struct spwd *)0)
{
printf("%s\n", sp->sp_namp);
}
}
}
endspent();
return(EXIT_SUCCESS);
}