-
大小: 443KB文件類(lèi)型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-18
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
沈陽(yáng)大學(xué)信息工程學(xué)院操作系統(tǒng)課程設(shè)計(jì),包括程序代碼、源程序、以及論文。

代碼片段和文件信息
#include?“myHead.h“
//尋找第一個(gè)空白的文件塊ID
unsigned?FindBlankFileBlockId()
{
unsigned?char?c;
for?(unsigned?i?=?0;?i? {
c?=?FS.bm.BMStart[i]?|?0x7F;
if?(c?==?0x7F)return?i?*?8;//一個(gè)字節(jié)左邊第一位,表示該區(qū)域未使用
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;
}
//尋找第一個(gè)文件塊地址
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;
}
//得到當(dāng)前時(shí)間的字符串
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)
{
//計(jì)復(fù)所在位示圖的位置
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;
}
//創(chuàng)建一個(gè)文件元素
FSElement?*?CreateFileElement(FEAccess?acc?char?*filename?FEType?type?char?*filecontent?FSElement?*parent)
{
//查找第一個(gè)空白文件塊ID
unsigned?blankFileBlockId?=?FindBlankFileBlockId();
if?(blankFileBlockId?>=?FILEBLOCKCOU)
{
printf(“未找到一個(gè)文件塊的id\n“);
return?NULL;
}
//查找第一個(gè)空白塊的地址
char?*blank?=?FindBlankFileBlock(blankFileBlockId);
if?(blank?==?NULL)
{
printf(“未找到一個(gè)文件塊的地址\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-
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件?????418816??2010-07-07?16:00??操作系統(tǒng)楊一濤.doc
?????文件??????31232??2010-07-09?13:17??課程設(shè)計(jì)任務(wù)書(shū)模板.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的數(shù)字電壓表
- 下一篇:zlib-1.2.7
評(píng)論
共有 條評(píng)論