操作系统—文件系统管理

更新时间:2023-07-23 22:40:29 阅读: 评论:0

Unix & Linux文件系统
操作系统实验报告
[实验内容]
【任务】
Linux 系统设计一个简单的二级文件系统。要求做到以下几点:bhs
1 . 可以实现下列几条命令:
sacrifice>magic number
login
用户登录
logout
用户注销
Create
新建文件
Delete
删除文件
Open
打开文件
Clo
关闭文件
Read
读文件
Write
写文件
dir
列目录
2 . 列目录时要列出文件名,物理地址,保护码和文件长度。
3 . 源文件可以进行读写保护。
【程序设计】
1. 本文件系统采用两级目录,其中第一级对应用户帐号。第二级对应用户帐号下面的文件。本文件系统未考虑文件的共享与保护。
2. 本程序在Win2000下,用Visual C++  6 .0编译运行。但只需稍加修改即可在Linux下运行。
3 . 代码(见源程序)
4 . 主要数据结构:
#define FILENAME_LENGTH 10          //最大用户数
#define commandAmount 9      //指令数
char _ur[20];                //当前用户名
char currentDir[255];            //当前所在目录
negative什么意思
typedef struct UrMess          //所有用户信息
{
    char _UrName[20];
    char _UrPwd[20];
    struct UrMess *nextUr;
}_UrMess;
_UrMess *firstUr;
typedef struct FolderDir          //目录路径信息
{
    char _Dir[255];
    struct FolderDir *fatherDir;
}_RootDir;
_RootDir *rootFolder;
typedef struct Folder              //当前目录子目录信息
{
  char _FolderName[100];
zebra是什么意思  struct Folder *nextFolder;
}_Folder;
_Folder *firstFolder;
typedef struct File                  //当前目录下文件信息
{
  char _FileName[100];
  struct File *nextFile;
}_File;
_File *firstFile;
【程序说明】
1 . 功能函数设计:
void init();                              //初始化部分内容
int ReadUrMess();                      //读取已有用户信息
int urCreate(int sumUrs);            //用户注册
int login();                              //登录
void createRootFolder(char urname[]);  //为新用户分配空间
void TraverFolder(char path[]);        //遍历文件及文件夹
void ListFileAndFolder();                //显示当前文件夹下所有文件
void ChangeDir(char folderName[]);        //目录跟换
void Delete(char fName[]);                //删除文件或文件夹
void CatFile(char fName[]);              //打开文件,查看文件内容
void AddContent(char fName[]);            //向文件写入内容
void CreateFile(char fName[]);            //创建文件
void CreateFolder(char folderName[]);    //创建文件夹
void HelpFile();                          //帮助文件
2 . 程序代码:horshoe
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
doblo
#include <dirent.h>
#define MaxUr 20
#define commandAmount 9
char _ur[20];
char currentDir[255];
typedef struct UrMess
{
    char _UrName[20];
    char _UrPwd[20];
    struct UrMess *nextUr;
}_UrMess;
_UrMess *firstUr;
typedef struct FolderDir
{
    char _Dir[255];
    struct FolderDir *fatherDir;
}_RootDir;
_RootDir *rootFolder;
typedef struct Folder
{
荨麻属
  char _FolderName[100];
  struct Folder *nextFolder;
}_Folder;
_Folder *firstFolder;
typedef struct File
{
  char _FileName[100];
  struct File *nextFile;
成都信息工程学院录取查询}_File;
_File *firstFile;
void init();                              //初始化部分内容
int ReadUrMess();                      //读取已有用户信息
int urCreate(int sumUrs);            //用户注册
int login();                              //登录
void createRootFolder(char urname[]);  //为新用户分配空间
void TraverFolder(char path[]);        //遍历文件及文件夹
void ListFileAndFolder();                //显示当前文件夹下所有文件
void ChangeDir(char folderName[]);        //目录跟换
void Delete(char fName[]);                //删除文件或文件夹
void CatFile(char fName[]);              //打开文件,查看文件内容
void AddContent(char fName[]);            //向文件写入内容
void CreateFile(char fName[]);            //创建文件
void CreateFolder(char folderName[]);    //创建文件夹
void HelpFile();                          //帮助文件
int main()
{
  int logined=0;
  int lect;
划船用英语怎么说  char ch;
  char order[commandAmount][9];
  strcpy(order[0],"create");
  strcpy(order[1],"rm");
  strcpy(order[2],"cat");
  strcpy(order[3],"write");
  strcpy(order[4],"ls");
  strcpy(order[5],"cd");
  strcpy(order[6],"exit");
  strcpy(order[7],"mkdir");
  strcpy(order[8],"help");
  char command[15],command_str1[255];
  int i,j;
  init();
  int urNum = ReadUrMess();     
  // printf("Ur count:%d\n",urNum);
  int isright=1;
  while(isright==1)
  {
      printf("********************************************\n");
      printf("                  1Creat ur\n");
      printf("                  2login\n");
      printf("********************************************\n");
      printf("Plea chooce the function key:> ");
      int choice;
      tbuf(stdin,NULL);
      scanf("%d",&choice);
      if(choice==1)
      {
        logined=urCreate(urNum);
        isright=0;
      }
      el if(choice==2)
      {
        logined=login(urNum);
        isright=0;
      }

本文发布于:2023-07-23 22:40:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1113451.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   用户   信息   文件夹
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图