资源简介
沈阳大学信息工程学院操作系统课程设计,包括程序代码、源程序、以及论文。
代码片段和文件信息
#include “myHead.h“
//寻找第一个空白的文件块ID
unsigned FindBlankFileBlockId()
{
unsigned char c;
for (unsigned i = 0; i < FS.bm.BitMapLen / 8; i++)
{
c = FS.bm.BMStart[i] | 0x7F;
if (c == 0x7F)return i * 8;//一个字节左边第一位,表示该区域未使用
c = FS.bm.BMStart[i] | 0xBF;
if (c == 0xBF)return i * 8 + 1;
c = FS.bm.BMStart[i] | 0xDF;
if (c == 0xDF)return i * 8 + 2;
c = FS.bm.BMStart[i] | 0xEF;
if (c == 0xEF)return i * 8 + 3;
c = FS.bm.BMStart[i] | 0xF7;
if (c == 0xF7)return i * 8 + 4;
c = FS.bm.BMStart[i] | 0xFB;
if (c == 0xFB)return i * 8 + 5;
c = FS.bm.BMStart[i] | 0xFD;
if (c == 0xFD)return i * 8 + 6;
c = FS.bm.BMStart[i] | 0xFE;
if (c == 0xFE)return i * 8 + 7;
}
return FILEBLOCKCOU + 1;
}
//寻找第一个文件块地址
char * FindBlankFileBlock(unsigned fileblockid)
{
FileBlock *fblock = FS.head;
while (fblock->next != NULL)
{
if (fblock->FileBlockId == fileblockid)
{
return fblock->FileBlockAddr;
}
else
{
fblock = fblock->next;
}
}
return NULL;
}
//得到当前时间的字符串
void GetCurrentTime(char *currtime)
{
char dbuffer [9];
char tbuffer [9];
_strdate(dbuffer);
_strtime(tbuffer);
strcpy(currtime dbuffer);
strcat(currtime “ “);
strcat(currtime tbuffer);
}
//更新文件索引
void AddFileIndex(unsigned fileblockid unsigned filelevel char *filename char *parentname)
{
FS.FI.FIStart[FS.FI.FICount].FileBlockId = fileblockid;
FS.FI.FIStart[FS.FI.FICount].FileLevel = filelevel;
strcpy(FS.FI.FIStart[FS.FI.FICount].FileName filename);
if (parentname == NULL)
{
memset(FS.FI.FIStart[FS.FI.FICount].ParentName ‘\0‘ MAXFILENAMELEN);
}
else
{
strcpy(FS.FI.FIStart[FS.FI.FICount].ParentName parentname);
}
FS.FI.FIStart[FS.FI.FICount].Index = FS.FI.FICount;
FS.FI.FIStart[FS.FI.FICount].effect = 1;
FS.FI.FICount ++;
}
//更新位示图
void UpdateBitMap(unsigned fileblockid)
{
//计复所在位示图的位置
int dirInBitmap = ((int)(fileblockid / 8));
int dirInChar = fileblockid % 8;
char *c = &(FS.bm.BMStart[dirInBitmap]);
char xor;
switch (dirInChar)
{
case 0:xor = 0x80;
break;
case 1:xor = 0x40;
break;
case 2:xor = 0x20;
break;
case 3:xor = 0x10;
break;
case 4:xor = 0x08;
break;
case 5:xor = 0x04;
break;
case 6:xor = 0x02;
break;
case 7:xor = 0x01;
break;
}
*c = *c ^ xor;
}
//创建一个文件元素
FSElement * CreateFileElement(FEAccess acc char *filename FEType type char *filecontent FSElement *parent)
{
//查找第一个空白文件块ID
unsigned blankFileBlockId = FindBlankFileBlockId();
if (blankFileBlockId >= FILEBLOCKCOU)
{
printf(“未找到一个文件块的id\n“);
return NULL;
}
//查找第一个空白块的地址
char *blank = FindBlankFileBlock(blankFileBlockId);
if (blank == NULL)
{
printf(“未找到一个文件块的地址\n“);
return NULL;
}
FSElement *fs = (FSElement *)blank;
fs->Access = acc;
fs->Creator = CS.CurrentUser;
GetCurrentTime(fs->CreateTime);
fs->FileBlockId = blankFileBlockId;
fs->FileLevel = CS.FileLevel;
strcpy(fs-
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 418816 2010-07-07 16:00 操作系统杨一涛.doc
文件 31232 2010-07-09 13:17 课程设计任务书模板.doc
文件 196692 2010-07-07 13:18 OS\Debug\OS.exe
文件 292612 2010-07-07 13:18 OS\Debug\OS.ilk
文件 241664 2010-07-07 13:07 OS\Debug\OS.pch
文件 492544 2010-07-07 13:18 OS\Debug\OS.pdb
文件 41984 2010-07-07 15:19 OS\Debug\vc60.idb
文件 53248 2010-07-07 13:18 OS\Debug\vc60.pdb
文件 47868 2010-07-07 13:18 OS\Debug\yytos.obj
文件 3641 2010-07-07 13:07 OS\myHead.h
文件 4361 2010-07-06 00:39 OS\OS.dsp
文件 512 2010-07-05 23:23 OS\OS.dsw
文件 50176 2010-07-07 16:35 OS\OS.ncb
文件 53760 2010-07-07 16:35 OS\OS.opt
文件 868 2010-07-07 13:18 OS\OS.plg
文件 161 2010-07-05 23:27 OS\stdfax.h
文件 18387 2010-07-07 13:18 OS\yytos.cpp
目录 0 2010-07-08 01:33 OS\Debug
目录 0 2010-07-08 01:33 OS
----------- --------- ---------- ----- ----
1948526 19
- 上一篇:基于adc0832的数字电压表
- 下一篇:zlib-1.2.7
相关资源
- 操作系统课程设计-消费者生产者问
- 可变式分区存储管理 实验报告和源代
- 广工最新2020操作系统课程设计
- 操作系统课程设计-简单字符设备和块
- 1---17030140015+党奇伟+西电计算机操作系
- 操作系统课程设计页面置换算法
- 操作系统课程设计报告-建立基于磁盘
- 串联文件,连续文件的存储模拟
- 华工操作系统课程设计
- 操作系统课程设计多级目录查询
- 时间片轮转、最高响应比优先调度算
- 进程调度模拟设计——先来先服务、
- 文件系统源码--操作系统课程设计
- 计算机操作系统课程设计报告.docx
- 基于FAT16的虚拟文件系统——操
- 华中科技大学操作系统课程设计源代
- 15年操作系统课程设计
- 操作系统课程设计(虚拟文件系统)
- 操作系统课程设计-文件管理系统-源码
- 操作系统课程设计-文件系统源码+文档
- 操作系统课程设计 目录查询
- 操作系统课程设计 处理机调度程序
- 文件管理系统-操作系统课程设计
- 操作系统课程设计小型命令处理器s
- 操作系统课程设计--模拟文件系统
- \\操作系统课程设计银行家算法,生产
- 华中科技大学操作系统课程设计
- 操作系统课程设计--死锁
- 操作系统课程设计作业调度算法源程
- 操作系统课程设计实验报告及源代码
评论
共有 条评论