操作系统实验报告模板(17)
发布时间:2021-06-05
发布时间:2021-06-05
这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linux shell操作。里面的程序都是我运行过的。
int i,FcbIndex;
//确保没有打开过该文件 = 相同名字 + 相同目录
for(i=0;i<OPEN_MAX;i++) {
if(openlist->f[i].type ==GENERAL && strcmp(openlist->f [i].fname,file)==0 &&openlist->f[i].fatherBlockNum == current) {
printf("该文件已经被打开!\n"); return 0; } }
//确保有空的打开文件项 if(openlist->files == OPEN_MAX) {
printf("打开文件数目达到上限!无法再打开新文件.\n"); return 0; }
//确保当前目录下有该文件,并且记录下它的FCB下标
struct dirFile *dir; //当前目录的指针
if(current==2)
dir=&(osPoint->root); else
dir=(struct dirFile *)(osPoint->data [current-3]);
for(i = 1;i< BlockFcbCount;i++) { //查找该文件
if(dir->fcb[i].type==GENERAL && strcmp(dir->fcb[i].fname,file)==0 ) {
FcbIndex=i; break; } }
if(i==BlockFcbCount) {
printf("当前目录下不存在该文件!\n"); return 0; }
//装载新文件进入打开文件列表,(FCB信息,文件数++) ??难道名字过不来? openlist->f[OpenFileCount] = dir->fcb[FcbIndex]; //FCB拷贝 openlist->files ++; printf("文件打开成功!\n"); OpenFileCount++; return 1; }
int close(char *file)
下一篇:2014一年级数学上册减法