资源简介
操作系统课程设计 刚刚学的时候写的 很好
简单的文件管理系统 模拟
代码片段和文件信息
#include “stdio.h“
#include “stdlib.h“
#include “string.h“
#include “ctype.h“
#define FILENAME_LEN 12
#define NULL 0
/*-----------------------------==================---------------------------------*/
/*-----------------------------定 义 数 据 结 构---------------------------------*/
/*-----------------------------==================---------------------------------*/
struct FileNode
{
char filename[FILENAME_LEN]; //文件名或目录名
char i_type[6]; //目录文件识别标志
int i_nlink; //文件的链接数
struct FileNode *parent*child; //指向父亲的指针和指向左孩子的指针
struct FileNode *sibling_prev*sibling_next;//指向前一个兄弟的指针和指向后一个兄弟的指针
}*head*fph;
/*-----------------------------定 义 全 局 变 量---------------------------------*/
/*-----------------------------==================---------------------------------*/
char command[10]direct[100]; //commamd[]命令函数direct[]目录或文件名
char nowdir[50][100]; //当前所在目录
int flag=1; //标志向量
/*-----------------------------==================---------------------------------*/
/*-----------------------------创 建 新 的 结 点---------------------------------*/
/*-----------------------------==================---------------------------------*/
struct FileNode * CreateFileNode(char command[]char direct[]FileNode *newd) //创建结点
{
if(strcmp(command“md“)==0 || strcmp(command“MD“)==0) //当创建目录时,isdir[]=dir
strcpy(newd->i_type““);
if(strcmp(command“edit“)==0 || strcmp(command“EDIT“)==0) //当创建文件时 isdi[]=file
strcpy(newd->i_type““);
strcpy(newd->filenamedirect);
newd->i_nlink=0;
newd->child=NULL;
newd->sibling_next=NULL;
return (newd);
}
/*-----------------------------==================---------------------------------*/
/*-----------------------------操作名和路径名分解---------------------------------*/
/*-----------------------------==================---------------------------------*/
void ParseCommand(char nowcom[]) //接受输入的命令并将其分解成操作名和路径文件名
{
int i=0m=0k=0;
while(isspace(nowcom[i])&&nowcom[i]!=‘\0‘) //检查是否是空格、跳格符并记下空格的位置
i++;
while(nowcom[i]!=‘ ‘&&(nowcom[i])!=‘\0‘&&(nowcom[i])!=(char)92)
{
command[m]=nowcom[i];
i++;
m++;
}
command[m]=‘\0‘; //操作命令
while(nowcom[i]!=‘\0‘)
{
direct[k]=nowcom[i];
i++;
k++;
}
direct[k]=‘\0‘; //文件或目录名称
}
/*-----------------------------==================---------------------------------*/
/*-----------------------------获 取 当 前 路 径---------------------------------*/
/*-----------------------------==================---------------------------------*/
void GetDir(FileNode *q)
{
if(q->parent!=NULL)
GetDir(q->parent);
if(strcmp(q->filename“root“)==0)
printf(“%s:“q->filename);
else
{
printf(“%s\\“q->filename);
}
}
/*-----------------------------==================---------------------------------*/
/*----------------------------
- 上一篇:表达式求值C语言实现《数据结构》课程设计报告
- 下一篇:多目标车辆路径优化源代码
相关资源
- spooling模拟系统代码.docx
- 操作系统实验-----MFC线程--购票系统演
- 分区式存储管理
- 操作系统抢占式短进程优先调度算法
- 请求调页存储管理方式的模拟
- 缓冲池的模拟(C++)
- 操作系统进程调度C++代码实现
- 操作系统请求分页存储器管理C++代码
- 操作系统银行家算法源码
- 进程的同步-吃水果问题
- 编写并调试一个模拟的进程调度程序
- 东北大学操作系统实验1进程的同步与
- 银行家算法C语言实现源文件
- C语言实现Linux文件系统模拟文档内有
- 时间片轮转算法实现
- 进程同步实验代码c语言
- C语言模拟实现操作系统内存的分配与
- vc++实现哲学家吃面问题
- DOS操作系统的C语言源代码
- linux操作系统下C++封装的基础库
- 操作系统 银行家算法 C++
- 操作系统 请求分页式存储管理的地址
- 《操作系统课内实验》文件系统实现
- 操作系统课程大作业-文件管理系统
- 操作系统william stallings答案英文版和中
- 操作系统c语言模拟文件管理系统
- 操作系统 课程设计 C++ spooling技术 源
- 51实时操作系统程序(easy51os)
- 基于Aurix的AUTOSAR多核操作系统的实现
- 《嵌入式实时操作系统uCOS-II》邵贝贝
评论
共有 条评论