usrdb.c

来自「Linux环境登陆源码」· C语言 代码 · 共 37 行

C
37
字号
#include <stdio.h>
#include <string.h>
#include "usrdb.h"
#define initb(buf) bzero(buf, sizeof(buf))

FILE *ropendb(const char *dbname)
{
   FILE *fp;
   if((fp=fopen(dbname, "r")) == NULL)
      return NULL;
   return fp;
}

int getusrbyid(FILE *fp, const char *id, struct user *ubuf)
{
   char idbuf[255], pwdbuf[255];

   for(initb(idbuf), initb(pwdbuf); !feof(fp); initb(idbuf), initb(pwdbuf))
   {
      fscanf(fp, "%s\t%s", idbuf, pwdbuf);
      if(strcmp(idbuf, id) != 0)
         continue;
      else
      {
         strcpy(ubuf->id, idbuf);
	 strcpy(ubuf->pwd, pwdbuf);
	 return 0;
      }
   }
   return -1;
}

int closedb(FILE *fp)
{
   return fclose(fp);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?