課程名:計算機操作系統地點:姓名:班級:學號:成績項目:文件操作實驗目的學習較為復雜的Linux下的編程實驗內容設計并實現一個一級(單用戶)文件系統程序1、提供以下操作文件創建/刪除接口命令/目錄創建/刪除接口命令/rmdir顯示目錄內容命令ls2、創建的文件不要求格式和內容文件、目錄要有權限程序主文件代碼:#####"。h"#"creat。h"#"。h"#"。h"#"close。h"#"。h"#"dir。h"#"。h"#"halt。h"#"。h"#"。h"#"log。h"#"name。h"#"open。h"#"rdwt。h"#"。h"[NHINO];;[];;[];[];FILE*fd;*;;;[12];;[12];main(),,,,i,j;char*buf;=1;("\("。
。。\n");();("\,。。。\n");();("\n----Login----\id:");scanf("%u",&);("\word:");scanf("%s",&usr_p);if(!login(,usr_p));/*login(2118,"abcd");*/while(done)("\\n");("-1----ls\n-2----mkdir\n-3----\n-4----\n-0----\n");sel=();sel=();(sel)_dir();break;(":");scanf("%s",);mkdir();break;(":");scanf("%s",);chdir();break;(":");scanf("%s",);=creat(2118,,01777);buf=(char*)(*6+5);write(,buf,*6+5);close(0,);free(buf);break;();halt();:("error!\,。
\。\n");break;("\\n");索引節點的數據結構:de*;*;;;;[NADDR];er;;;;;超級塊的數據結構;;;;[];;e;[];;;用戶和口令的數據結構;;;[];;;[];有關目錄的數據結構;;;;;[NADDR];me[];;[];;初始化數據塊for(i=+2;&) if((inode->&)&&(user[]。
u_gid==inode->)) if((inode->&)&&(user[]。u_uid==inode->)) : : : 創建文件while(--; iput(inode);} 讀文件 inode=[user[]。[cfd]]。; if(!([user[]。[cfd]]。&FREAD)){ ("\nthe file read\n"); if((off+size)>inode->)size=inode->-off; =off%; block=off/; if(+[j+i]*成都信息工程學院操作系統實驗報告四文件操作,); fread(,1,,fd); +=;} 寫文件if(!([user[]。
[cfd]]。&)){ ("\nthe file write\n"); if(+[block]*+,); (buf,1,size成都信息工程學院操作系統實驗報告四文件操作,fd); size;} fseek(fd,+inode->[block]*+,); (,1,-,fd); +=-; for(i=0;[block+1+i]=(); fseek(fd,+inode->[block+1+i]*,); (,1,,fd); 打開文件 if(!=(int)NULL){ ("\nfile does !!!\n"); (int)NULL;} inode=iget(); if(!(,inode,)){ ("\nfile open has !!!\n");iput(inode); (int)NULL;} for(i=1;i