• 大小: 1.59MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-02
  • 语言: 其他
  • 标签:

资源简介

实验目的: 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 实验要求: 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条); login 用户登陆 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include 
#include 
#include 
#define MaxUser 1028    //用户最多数目
#define commandAmount 12     //对文件操作的指令数
//用户管理
int userID = -1; //用户登录的ID号,值为-1时表示没有用户登录
char Name[15];     //正在登录用户名
char firstName[5]; //正在被操作的文件
long used = 0;    //全局变量,用户数
long used1 = 0;    //全局变量,用户创建文件数
char q2[20] = “file/node/“;
typedef struct master_file_directory
{
char userName[15];
char password[15];
} MFD;
MFD userTable[MaxUser];

typedef struct node {
char fileName[15];
char number[5];
//UFD *user;
} MFD1;
MFD1 fileTable[1024];

void userCreate();   //创建用户
int login();   //用户登录
int createDirectory(const char*filename);//创建目录
void fileAttribute(char*fileName);//文件属性
void readDir1();//读用户
void create(char*name); //创建文件
void deletefile(const char*filename);//删除文件
int openfile(char*name);//打开文件
void writefile(char name[] char*buf);//写文件
void readfile(char name[]);//查看文件内容
void closefile(int fd);
void userCreate();//创建用户
int login();//用户登录
void createfile(char name[] char kind[]);//创建文件
void reFileName(char*old char*new);//文件重命名
void chmodfile(char name[] char kind[]);//修改文件权限
int main() {

char order[commandAmount][10];
strcpy(order[0] “create“);
strcpy(order[1] “delete“);
strcpy(order[2] “read“);
strcpy(order[3] “write“);
strcpy(order[4] “arr“);
strcpy(order[5] “chmod“);
strcpy(order[6] “ren“);
strcpy(order[7] “dir“);
strcpy(order[8] “return“);
strcpy(order[9] “exit“);
strcpy(order[10] “diru“);
strcpy(order[11] “delu“);
char command[1028] command_str1[10] command_str2[10] command_str3[1028];
int i k j;
int length;
createDirectory(“file“);
createDirectory(“file/node“);
create(“file/user.txt“);
long used;
struct stat d;
stat(“file/user.txt“ &d);
d.st_size;
used = (d.st_size) / 30l;

FILE *fp;

if ((fp = fopen(“file/user.txt“ “r“)) == NULL)

{
printf(“cannot open this file\n“);

exit(0);

}
fread(userTable sizeof(struct master_file_directory) used fp);

fclose(fp);
    if(used==0)
    {
     strcpy(userTable[0].userName“root“);
            strcpy(userTable[0].password“root“);

     char q[20] = “file/“;
     char q2[20] = “file/node/“;
     strcat(q userTable[0].userName);
     strcat(q2 userTable[0].userName);
     createDirectory(q);
     create(q2);
     used++;
     FILE *fp;
     if ((fp = fopen(“file/user.txt“ “w“)) == NULL)

     {
     printf(“cannot open this file\n“);

     exit(0);

     }
     fwrite(userTable sizeof(struct master_file_directory) used fp);
     fclose(fp);

    }


int g = 0;
while (g == 0) {
printf(“********************************************\n“);
printf(“                  1、login\n“);
printf(“                  2、register\n“);
    printf(“                  3、exit\n“);
printf(“********************************************\n“);
printf(“Please chooce the function key:>“);
int choice;
scanf(“%d“ &choice);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    1775104  2012-03-15 20:32  《操作系统》课程实验报告.doc

     文件      17437  2012-02-19 20:01  file.c

----------- ---------  ---------- -----  ----

              1792541                    2


评论

共有 条评论