亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? newfile.cpp

?? 這是我上個學期操作系統(tǒng)的課程設計
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
	save_dir(dir_id);                              //立即寫回磁盤
}

void open_file_system()                            //打開文件系統(tǒng)                     
{
	int flag=0;
	fp=fopen(file_system_name,"rb");               //以讀方式打開,如果不存在,則創(chuàng)建文件系統(tǒng)
	if(fp==NULL)                            
	{
		create_file_system();
		flag=1;
	}
	fp=fopen(file_system_name,"rb+");              //以讀寫方式打開
	if(fp==NULL)
	{
		printf("Open file system error!\n");
		exit(1);
	}
	if(flag==0)                                    //如果該文件系統(tǒng)早就創(chuàng)建,則將其信息讀入主存                          
	{
		fseek(fp,0,SEEK_SET);                      //讀超級塊信息
		fread(&used_dir,sizeof(int),1,fp);
		fread(&used_file,sizeof(int),1,fp);
		fread(&used_block,sizeof(int),1,fp);

		for(int i=0;i<DIR_NUM;i++)
			fread(&dir_flag[i],sizeof(int),1,fp);
		for(i=0;i<FILE_NUM;i++)
			fread(&file_flag[i],sizeof(int),1,fp);
		for(i=0;i<BLOCK_NUM;i++)
			fread(&block_flag[i],sizeof(int),1,fp);

		for(i=0;i<DIR_NUM;i++)                     //讀目錄及文件的控制信息
			if(dir_flag[i]==1)
			{
				fseek(fp,sizeof(int)*(DIR_NUM+FILE_NUM+BLOCK_NUM+3)+sizeof(struct dir_node)*i,SEEK_SET);			
				fread(&dir[i],sizeof(struct dir_node),1,fp);
			}
		for(i=0;i<FILE_NUM;i++)
			if(file_flag[i]==1)
			{
				fseek(fp,sizeof(int)*(DIR_NUM+FILE_NUM+BLOCK_NUM+3)+sizeof(struct dir_node)*DIR_NUM+sizeof(struct file_node)*i,SEEK_SET);					
				fread(&file[i],sizeof(struct file_node),1,fp);
			}
		collect(0);
	}
 	fflush(fp);

	curr=0;
	curr_dir=&dir[curr];                           //設置當前目錄為根目錄
	strcpy(curr_path,curr_dir->dir_name);
	strcat(curr_path,"/");
}

void close_file_system()                           //關閉文件系統(tǒng),并保存相應信息,這是系統(tǒng)
{                                                  //隱式保存文件及目錄的方法
	save(0);
	for(int i=0;i<DIR_NUM;i++)
		if(al_dflag[i]%2!=0)
			write_bit(i,0);
	for(i=0;i<FILE_NUM;i++)
		if(al_fflag[i]%2!=0)
			write_bit(i,1);
	for(i=0;i<BLOCK_NUM;i++)
		if(al_bflag[i]%2!=0)
			write_bit(i,2);

	fseek(fp,0,SEEK_SET);
	fwrite(&used_dir,sizeof(int),1,fp);
	fwrite(&used_file,sizeof(int),1,fp);
	fwrite(&used_block,sizeof(int),1,fp);

	fclose(fp);
}

void help()                               //打印命令及解釋
{
	printf("Commands:                 Explanation:\n\n");
	printf("    exit:                 Exit!\n");
	printf("     dir:                 Show files and directories!\n");
	printf("    tree:                 Show directory tree!\n");
	printf("     mkf:                 Create a new file!\n");
	printf("     mkd:                 Create a new directory!\n");
	printf("    delf:                 Delete a file!\n");
	printf("    deld:                 Delete a directory!\n");
	printf("      cd:                 Change the current directory!\n");
	printf("   write:                 Write a string to a file!\n");
	printf("    read:                 Read a string from a file!\n");
	printf("    edit:                 Edit a file!\n");
	printf("     cpf:                 Copy a file!\n");
	printf("     cpd:                 Copy a directory!\n");
	printf("  format:                 Format the disk!\n");
	printf("    help:                 Print commands!\n");
	printf("   savef:                 Save a file!\n");
	printf("   saved:                 Save a directory!\n");
	printf("     rnf:                 Rename a file!\n");
	printf("     rnd:                 Rename a directory!\n");
}

void run()                               //命令接受及解析,轉入相應函數(shù)運行
{
	char *command[19]={"exit","dir","mkf","mkd","delf","deld","cd","write","read","cpf","cpd","savef","saved","format","help","tree","rnf","rnd","edit"};
	char buf1[256];
	char buf2[2048];
	char buf3[128];
	char buf4[128];
	int key,num,offset,index,del_pos,parent,buf_id,file_id,p;
	char *s,flag='\0';
	printf("Input help to print commands!\n");
	while(1)
	{
		strcpy(buf1,"");
		strcpy(buf2,"");
		strcpy(buf3,"");
		strcpy(buf4,"");
		p=0;
		printf("\n%s\n",curr_path);
		cin.getline(buf1,256,'\n');
		key=-1;
		for(int i=0;i<=18;i++)                     //命令匹配
			if(strncmp(buf1,command[i],(int)strlen(command[i]))==0)
			{
				key=i;
				break;
			}
		if(key!=-1)                                //參數(shù)分解
		{
			s=strchr(buf1,' ');
			if(s!=NULL)
			{
				index=(int)(s-buf1);
				while(buf1[index]==' ')
					index++;
				strcpy(buf3,buf1+index);
				s=strchr(buf3,' ');
				if(s!=NULL)
				{
					num=(int)(s-buf3);		
					buf3[num]='\0';
				}
				s=strrchr(buf1+index,' ');
				if(s!=NULL)
				{
					index=(int)(s-buf1);
					strcpy(buf4,buf1+index+1);
				}
			}
		}
		switch(key)
		{
		case -1:
			printf("The command you input not exist!\n");
			break;;
		case 0:
			return;
		case 1:
			list();
			break;
		case 2:
			if((int)strlen(buf3)==0)
			{			
				printf("please input the name of the file:\n");			
				cin.getline(buf3,128,'\n');			
			}
			if(create(buf3)!=-1)				
				printf("Succeed!\n");
			break;
		case 3:
			if((int)strlen(buf3)==0)			
			{			
				printf("please input the name of the directory:\n");	
				cin.getline(buf3,128,'\n');			
			}
			if(md(buf3)!=-1)				
				printf("Succeed!\n");
			break;
		case 4:
			if((int)strlen(buf3)==0)
			{			
				printf("please input the name of the file:\n");			
				cin.getline(buf3,128,'\n');			
			}
			if(delfile(buf3)!=-1)				
				printf("Succeed!\n");
			break;
		case 5:
			if((int)strlen(buf3)==0)
			{
				printf("please input the name of the directory:\n");			
				cin.getline(buf3,128,'\n');
			}			
			parent=get_parent(buf3,p);
			if(parent==-1)
			{		
				printf("Path name error!\n");		
				break;	
			}
			if((del_pos=search(parent,buf3+p,0,index))==-1)
			{	
				printf("The directory to delete not exist in current directory!\n");
				break;
			}
			if(dir[del_pos].dir_count>0 || dir[del_pos].file_count>0)
			{
				printf("The directory is not empty!\nAre you sure to delete it?('Y' or 'N')\n");			
				cin.getline(&flag,32,'\n');			
				if(flag!='Y' && flag!='y')			
					break;
			}
			del_dir(parent,del_pos,index);
			printf("Succeed!\n");
			break;
		case 6:
			if((int)strlen(buf3)==0)
			{
				printf("please input the name of the diectory:\n");	
				cin.getline(buf3,128,'\n');
			}
			if(change_dir(buf3)!=-1)
				printf("Succeed!\n");	
			break;
		case 7:
			if((int)strlen(buf3)==0)
			{			
				printf("please input the file name:\n");			
				cin.getline(buf3,128,'\n');
			}
			printf("please input the offset:\n");
			scanf("%d",&offset);
			printf("please input the string:\n");
			cin.getline(buf2,256,'\n');
			if(write_file(buf3,offset,strlen(buf2),buf2)!=-1)
				printf("Succeed!\n");
			break;
		case 8:
			if((int)strlen(buf3)==0)
			{
				printf("please input the file name:\n");		
				cin.getline(buf3,128,'\n');
			}
			printf("please input the offset:\n");
			scanf("%d",&offset);
			printf("please input the number of characters:\n");
			scanf("%d",&num);
			if(read_file(buf3,offset,num,buf2)!=-1)
			{
				printf("Succeed!\n");
				printf("%s\n",buf2);
			}
			break;
		case 9:
			if((int)strlen(buf3)==0)
			{
				printf("please input the name of the dest dir:\n");	
				cin.getline(buf3,128,'\n');
			}
			if((int)strlen(buf4)==0)
			{
				printf("please input the name of the source file:\n");	
				cin.getline(buf4,128,'\n');
			}
			if(copy_file(buf3,buf4)!=-1)
				printf("Succeed!\n");
			break;
		case 10:
			if((int)strlen(buf3)==0)
			{
				printf("please input the name of the dest dir:\n");			
				cin.getline(buf3,128,'\n');
			}
			if((int)strlen(buf4)==0)
			{
				printf("please input the name of the source dir:\n");	
				cin.getline(buf4,128,'\n');
			}
			if(copy_dir(buf3,buf4)!=-1)
				printf("Succeed!\n");
			break;
		case 11:
			if((int)strlen(buf3)==0)
			{			
				printf("please input the name of the file:\n");	
				cin.getline(buf3,128,'\n');
			}
			if(savefile(buf3)!=-1)
				printf("Succeed!\n");
			break;
		case 12:
			if((int)strlen(buf3)==0)
			{
				printf("please input the name of the directory:\n");		
				cin.getline(buf3,128,'\n');
			}
			if(saved(buf1)!=-1)
				printf("Succeed!\n");
			break;
		case 13:
			format();
			printf("Succeed!\n");
			break;
		case 14:
			help();
			break;
		case 15:
			show_tree();
			break;
		case 16:
			if((int)strlen(buf3)==0)
			{
				printf("please input the name of the file:\n");			
				cin.getline(buf3,128,'\n');
			}
			if((int)strlen(buf4)==0)
			{
				printf("please input the new name:\n");	
				cin.getline(buf4,128,'\n');
			}
			if(rename_file(buf3,buf4)!=-1)
				printf("Succeed!\n");
			break;
		case 17:
			if((int)strlen(buf3)==0)
			{
				printf("please input the name of the dir:\n");			
				cin.getline(buf3,128,'\n');
			}
			if((int)strlen(buf4)==0)
			{
				printf("please input the new name:\n");	
				cin.getline(buf4,128,'\n');
			}
			if(rename_dir(buf3,buf4)!=-1)
				printf("Succeed!\n");
			break;
		case 18:
			if((int)strlen(buf3)==0)
			{
				printf("please input the name of the file:\n");			
				cin.getline(buf3,128,'\n');
			}	
			parent=get_parent(buf3,p);	
			if(parent==-1)	
			{		
				printf("Path name error!\n");	
				break;	
			}
			file_id=search(parent,buf3+p,1,index);
			if(file_id==-1)	
			{		
				printf("The file not exist!\n");		
				break;	
			}
			buf_id=open_file(file_id,2);
			printf("\n%s\n\n",buffer[buf_id].buf);
			printf("Please select:\nD(delete)  I(insert)   Q(cancel)\n");
			cin.getline(&flag,10,'\n');
			if(flag=='D' || flag=='d')
			{
				printf("Please input the start position and the finish position:\n");
				scanf("%d %d",&offset,&index);
				if(offset>=index)
				{
					printf("Position error!\n");
					break;
				}
				edit(buf_id,2,offset,index,NULL);
			}
			else if(flag=='I' || flag=='i')
			{
				printf("Please input the insert position:\n");
				scanf("%d",&offset);
				printf("Please input the string:\n");
				cin.getline(buf1,256,'\n');
				edit(buf_id,1,offset,0,buf1);
			}
			else
				break;
			printf("Succeed!\n");
			break;
		}
	}
}

void main()
{
	open_file_system();
	run();
	close_file_system();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区三区网站| 日韩精品资源二区在线| 欧美剧情片在线观看| 欧美变态tickling挠脚心| 国产精品无人区| 日本欧美肥老太交大片| 国产黄色精品视频| 日韩一二三区视频| 亚洲国产精品视频| 91老师国产黑色丝袜在线| 欧美sm美女调教| 亚洲福利视频一区二区| 99麻豆久久久国产精品免费优播| 欧美欧美午夜aⅴ在线观看| 国产精品久久久久毛片软件| 日韩av中文字幕一区二区三区| 色婷婷亚洲综合| 国产女人aaa级久久久级| 久久国产精品免费| 日韩欧美国产成人一区二区| 亚洲va欧美va人人爽| 色综合欧美在线视频区| 中文字幕欧美激情| 国产精品一区二区无线| 欧美成人video| 久久99精品久久久久久国产越南 | 亚洲国产sm捆绑调教视频| 国产不卡在线一区| 久久久久久一级片| 国产乱对白刺激视频不卡| 欧美一区二区视频网站| 亚洲va韩国va欧美va精品| 欧美性生交片4| 亚洲大片精品永久免费| 欧美视频完全免费看| 亚洲综合免费观看高清完整版| 99国产欧美久久久精品| 国产精品久久一卡二卡| av在线不卡免费看| 综合欧美亚洲日本| 色婷婷狠狠综合| 一区二区三区四区蜜桃| 在线视频欧美区| 亚洲国产精品久久人人爱| 欧美电影在线免费观看| 日韩和欧美的一区| 日韩欧美一二区| 精品无人码麻豆乱码1区2区| 精品久久久久久久久久久久包黑料 | 欧美日韩国产一级| 日韩高清在线电影| 欧美va日韩va| 国产精品一区二区久久不卡| 国产偷国产偷精品高清尤物| 高清av一区二区| 亚洲精品视频观看| 欧美一级在线视频| 国产91在线观看| 一区精品在线播放| 欧美男人的天堂一二区| 久久成人综合网| 亚洲欧洲成人自拍| 欧美日韩高清一区二区不卡| 国产一区啦啦啦在线观看| 亚洲欧美在线观看| 日韩一区二区不卡| a亚洲天堂av| 免费人成精品欧美精品| 日本一区二区三区在线不卡| 91国模大尺度私拍在线视频| 欧美96一区二区免费视频| 国产精品嫩草99a| 欧美另类videos死尸| 国产高清视频一区| 首页国产欧美久久| 国产精品蜜臀在线观看| 欧美一区二区三区不卡| 99麻豆久久久国产精品免费优播| 亚洲va欧美va国产va天堂影院| 国产视频亚洲色图| 91麻豆精品国产| 91丨porny丨最新| 狠狠色丁香婷婷综合| 亚洲精品欧美二区三区中文字幕| 精品国偷自产国产一区| 欧美性生活久久| 大胆欧美人体老妇| 老司机免费视频一区二区三区| 中文字幕在线不卡一区二区三区| 日韩免费观看高清完整版在线观看| 91麻豆高清视频| 狠狠色狠狠色综合| 日韩av网站在线观看| 亚洲精品福利视频网站| 国产欧美精品一区二区色综合| 在线播放视频一区| 91精品办公室少妇高潮对白| 国产一区啦啦啦在线观看| 丝袜a∨在线一区二区三区不卡| 国产精品国模大尺度视频| 精品国产免费视频| 91麻豆精品国产91久久久资源速度| 91视频91自| 波多野结衣91| 床上的激情91.| 国产精品综合一区二区| 国产一区二区三区四区在线观看| 日韩电影在线一区二区三区| 亚洲午夜日本在线观看| 亚洲欧美另类久久久精品2019| 国产精品久久久久影院| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲高清免费视频| 亚洲一区二区精品3399| 亚洲精品国产成人久久av盗摄| 亚洲三级在线免费| 一区二区三区小说| 亚洲亚洲精品在线观看| 亚洲成人动漫av| 午夜视频一区二区| 日本在线不卡视频一二三区| 日本麻豆一区二区三区视频| 免费观看一级欧美片| 免费在线观看日韩欧美| 久久激五月天综合精品| 国产呦萝稀缺另类资源| 国产成a人亚洲| 成人av在线观| 色综合久久久久久久久| 欧美日韩高清一区二区三区| 欧美日韩国产精品成人| 欧美成人r级一区二区三区| 久久免费午夜影院| 自拍偷在线精品自拍偷无码专区| 国产精品福利一区| 香蕉加勒比综合久久| 久久99深爱久久99精品| 国产一区二区导航在线播放| 国产91露脸合集magnet| 色综合色狠狠天天综合色| 7777精品久久久大香线蕉 | 精品理论电影在线| 久久久久久久综合日本| 中文字幕一区二区视频| 亚洲午夜私人影院| 国产一区二区三区观看| 99国产一区二区三精品乱码| 欧美肥胖老妇做爰| 欧美国产一区视频在线观看| 一区二区三区四区国产精品| 琪琪一区二区三区| 99久久99精品久久久久久| 欧美一区二区在线免费播放| 国产午夜精品一区二区三区四区| 伊人开心综合网| 激情综合色播激情啊| 色综合久久久久综合体桃花网| 69堂亚洲精品首页| 国产精品成人免费| 美女视频黄 久久| 色av综合在线| 久久久综合精品| 视频一区二区三区入口| 白白色 亚洲乱淫| 日韩网站在线看片你懂的| 国产精品福利电影一区二区三区四区| 亚洲成人自拍一区| 99视频一区二区| 久久一日本道色综合| 亚洲成人在线网站| av电影天堂一区二区在线| 欧美一级片在线| 亚洲最新视频在线观看| 成人免费视频caoporn| 日韩美女一区二区三区四区| 亚洲美女精品一区| 国产成人综合网| 日韩色视频在线观看| 亚洲国产人成综合网站| 99久久精品国产毛片| 国产午夜精品理论片a级大结局| 天堂va蜜桃一区二区三区| 日本伦理一区二区| 国产精品久久免费看| 高清日韩电视剧大全免费| 精品久久久久久久人人人人传媒| 亚洲成人一区在线| 欧美视频一区在线观看| 亚洲人成电影网站色mp4| 国产成人免费在线| 久久日韩精品一区二区五区| 蜜桃视频在线观看一区二区| 欧美日韩一区二区在线观看视频| 亚洲色图在线播放| 97se狠狠狠综合亚洲狠狠| 国产精品国产自产拍高清av | 美女视频一区二区三区| 91精品啪在线观看国产60岁| 香蕉久久一区二区不卡无毒影院| 欧美少妇一区二区|