⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log.c

📁 此版本是在网上广为流传的 二级文件系统 基础上制作的.重新编写了块操作等模块,修正了N多BUG. 实现的命令有 ls-列目录 md-创建目录 cd-进入子目录 mf-创建文件 cat-显示文件内
💻 C
字号:
#include <stdio.h>

#include "filesys.h"

int login(uname,passwd)
char * uname;
char * passwd;
{

 int i;
//   strcpy(user[0].u_name, "root");
//   strcpy(user[0].password,"root");
//printf("%s, %s\n", user[0].u_name, user[0].password);
 for(i=0;i<USERNUM;i++)
 {
   if( (!strcmp(uname,user[i].u_name))&&(!strcmp(passwd,user[i].password)))
   {
       user_id=i;
       break;
   }
 }

 if(i==USERNUM)
 {
   printf("\nincorrect password\n");
   printf("log---->out\n");
   getch();
   return 0;
 }
 else
 {
    printf("\nyour name:%s\n",uname);
    printf("your password:%s\n",passwd);
    printf("log---->out\n");
    return 1;
 }

}

int logout(uid)    /* logout */

unsigned short uid;
{

  int i,j,sys_no;

  struct inode *inode;
  
  i = uid;

/*  for(i=0;i<USERNUM;i++)

  if(uid==user[i].u_uid) break;

  if(i==USERNUM)
  {
    printf("\nno such a file\n");
    return NULL;
  }*/

  for(j=0;j<NOFILE;j++)

  {

    if(user[i].u_ofile[j]!=SYSOPENFILE+1)

    {

      /* iput the inode free the sys_ofile and clear the user_ofile */

      sys_no=user[i].u_ofile[j];

      inode=sys_ofile[sys_no].f_inode;

      iput(inode);

      sys_ofile[sys_no].f_count--;

      user[i].u_ofile[j]=SYSOPENFILE+1;

    }

  }

  return 1;

}

⌨️ 快捷键说明

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