91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

實現一個簡單的shell(命令行解釋器),類似于bash, csh等。本設計的主要目的在于學會如何在Unix系統下創建進程和管理進程。

資源截圖

代碼片段和文件信息

#include?“stdio.h“?
#include??
#include??
#include?
??
int?physic[100];????//文件地址緩沖區p
int?style=1;?????//文件的類型
char?cur_dir[10]=“root“;??//當前目錄??
???
struct?command
{
?char?com[10];
}cmd[12];
struct?block
{
?int?n;??????//空閑的盤快的個數
?int?free[50];????//存放空閑盤快的地址
?int?a;??????//模擬盤快是否被占用
}memory[20449];
struct?block_super
{
?int?n;??????//空閑的盤快的個數
?int?free[50];????//存放進入棧中的空閑塊
?int?stack[50];????//存放下一組空閑盤快的地址
}super_block;
struct?node??????//i結點信息
{
?int?file_style;????//i結點?文件類型
?int?file_length;???//i結點?文件長度
?int?file_address[100];??//i結點?文件的物理地址
}?i_node[640];
struct?dir??????//目錄項信息
{
?char?file_name[10];???//文件名
?int??i_num;?????//文件的結點號
?char?dir_name[10];???//文件所在的目錄
}?root[640];
void?format()?????//格式化
{
?int?ijk;
?super_block.n=50;
?for(i=0;i<50;i++)?????//超級塊初始化
?{?
??super_block.free[i]=i;???//存放進入棧中的空閑塊
??super_block.stack[i]=50+i;??//存放下一組的盤塊
?}
?for(i=0;i<640;i++)?????//i結點信息初始化
?{
??for(j=0;j<100;j++)
??{
???i_node[i].file_address[j]=-1;//文件地址
??}
??i_node[i].file_length=-1;??//文件長度
??i_node[i].file_style=-1;??//文件類型
?}
?for(i=0;i<640;i++)?????//根目錄區信息初始化
?{
??strcpy(root[i].file_name““);
??root[i].i_num=-1;
??strcpy(root[i].dir_name““);
?}?
for(i=0;i<20449;i++)?????//存儲空間初始化??
{
?memory[i].n=0;??????//必須有這個
?memory[i].a=0;??????
?for(j=0;j<50;j++)
?{
??memory[i].free[j]=-1;
?}
}
?for(i=0;i<20449;i++)????//將空閑塊的信息用成組鏈接的方法寫進每組的最后一個塊中
?{?????????//存儲空間初始化
??
??if((i+1)%50==0)
??{
???k=i+1;
???for(j=0;j<50;j++)
???{
????if(k<20450)
????{
?????memory[i].free[j]=k;//下一組空閑地址
?????memory[i].n++;??//下一組空閑個數???注意在memory[i].n++之前要給其賦初值
?????k++;
????}
????else
????{
?????memory[i].free[j]=-1;
????}
???}
???memory[i].a=0;????//標記為沒有使用
???continue;?????//處理完用于存儲下一組盤塊信息的特殊盤塊后,跳過本次循環
??}
??for(j=0;j<50;j++)
??{
??memory[i].free[j]=-1;
??}
??memory[i].n=0;??
?}
?printf(“已經初始化完畢\n“);
?printf(“進入Linux文件模擬............\n\n“);}
void?write_file(FILE?*fp)????//將信息讀入系統文件中
{
?int?i;
?fp=fopen(“system““wb“);
?for(i=0;i<20449;i++)
?{
??fwrite(&memory[i]sizeof(struct?block)1fp);
?}
?fwrite(&super_blocksizeof(struct?block_super)1fp);?
?for(i=0;i<640;i++)
?{
?fwrite(&i_node[i]sizeof(struct?node)1fp);
?}
?for(i=0;i<640;i++)
?{
?fwrite(&root[i]sizeof(struct?dir)1fp);
?}
?fclose(fp);
}
void?read_file(FILE?*fp)???//讀出系統文件的信息
{
?int?i;
?fp=fopen(“system““rb“);
?for(i=0;i<20449;i++)
?{
??fread(&memory[i]sizeof(struct?block)1fp);
?}
?fread(&super_blocksizeof(struct?block_super)1fp);
?for(i=0;i<640;i++)
?{
??fread(&i_node[i]sizeof(struct?node)1fp);
?}
?for(i=0;i<640;i++)
?{
??fread(&root[i]sizeof(struct?dir)1fp);
?}
?fclose(fp);
}
void?callback(int?length)????//回收磁盤空間
{
?int?ijkmq=0;
?for(i=length-1;i>=0;i--)
?{
??k=physic[i];?????//需要提供要回收的文件的地址
??m=49-super_block.n;????//回收到棧中的哪個位置
??if(super_block.n==50)???//注意?當super_block.n==50時?m=-1;的值
??{????????//super_blo

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-12-26?21:19??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\
?????目錄???????????0??2018-01-11?19:34??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\
?????文件???????13119??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\150521305wangmeng.cpp
?????文件????????3533??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\150521305wangmeng.dsp
?????文件?????????542??2018-01-11?19:34??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\150521305wangmeng.dsw
?????文件???????33792??2018-01-11?19:34??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\150521305wangmeng.ncb
?????文件???????48640??2018-01-11?19:34??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\150521305wangmeng.opt
?????文件?????????809??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\150521305wangmeng.plg
?????目錄???????????0??2018-01-11?19:34??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\Debug\
?????文件??????213053??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\Debug\150521305wangmeng.exe
?????文件??????211216??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\Debug\150521305wangmeng.ilk
?????文件???????33666??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\Debug\150521305wangmeng.obj
?????文件??????227868??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\Debug\150521305wangmeng.pch
?????文件??????394240??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\Debug\150521305wangmeng.pdb
?????文件???????33792??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\Debug\vc60.idb
?????文件???????45056??2018-01-11?19:33??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\Linux文件系統\Debug\vc60.pdb
?????文件?????2159104??2018-12-26?21:19??實現一個簡單的shell(命令行解釋器),類似于bash?csh等。\報告.doc

評論

共有 條評論