freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

某學(xué)院操作系統(tǒng)課程設(shè)計(jì)報(bào)告(文件管理系統(tǒng))(原創(chuàng))-wenkub

2022-11-23 21:16:48 本頁(yè)面
 

【正文】 假定 pInode是一個(gè)指向 inode結(jié)構(gòu)的指針,而且它已經(jīng)放入的需要放入的數(shù)值了,現(xiàn)在需要將其寫(xiě)入到特定位置。比如 EXT2 提供的OPEN/CLOSE接口操作。文件系統(tǒng)中的每個(gè)目錄和文件均由一個(gè) inode描述。比如 MS的 WINDOWS系列使用的是 FAT1 FAT32或 NTFS的文件系統(tǒng)、 LINUX使用的是 EXT EXT3文件系統(tǒng)等等。好了,從此開(kāi)始: 一.外存管理 其實(shí)很早人們?cè)O(shè)計(jì)操作系統(tǒng)的時(shí)候就意識(shí)到一個(gè)問(wèn)題:所有的程序和數(shù)據(jù)不可能都放在內(nèi)存當(dāng)中。 2.掌握文件系統(tǒng)的工作機(jī)理。 3.學(xué)習(xí)較為復(fù)雜的 linux下的編程。所以為了騰出寶貴的內(nèi)存空間,也為了方便用戶管理外存上的文件,文件系統(tǒng)應(yīng)運(yùn)而生。 二. linux的 EXT2 文件系統(tǒng) linux使用一個(gè)叫虛擬文件系統(tǒng)的技術(shù)從而可以支持多達(dá)幾十種的不同文件系統(tǒng),而 EXT2是 linux自己的文件系統(tǒng)。它包含:文件模式(類型和存取權(quán)限)、數(shù)據(jù)塊位置等信息。 三.可能用到的編程技術(shù) 1. fopen,打開(kāi)文件 格式: FILE *fopen(const char *filename,const char *mode) 需要頭文件 filename:待打開(kāi)的文件名,如果不存在就創(chuàng)建改文件??捎萌缦麓a: ?? fd=fopen(“ filesystem” ,” w+b” ); //fd是 FILE指針類型, w便是寫(xiě)方式, b表示二進(jìn)制 fseek(fd, specific_area,SEEK_SET); // fd是文件指針; specific_area為整形, // 為需要入 pInode的位置 fwrite(pInode,1,sizeof(inode),fd); // 寫(xiě) 入 pInode信息 ?? 【 實(shí)驗(yàn)內(nèi)容 】 1.根據(jù)前面的提示設(shè)計(jì)一個(gè)一級(jí)(單用戶)文件系統(tǒng)程序,要求實(shí)現(xiàn)功能: 1)提供文件創(chuàng)建 /刪除接口命令 create/delete、目錄創(chuàng)建 /刪除接口命令 midair/rmdir、顯示目錄內(nèi)容命令 ls 2)創(chuàng)建的文件不要求格式和內(nèi)容。 ? unsigned int i_ino。 ? unsigned short di_mode。 ? }。 ? unsigned short s_pfree。 ? unsigned int s_inode[NICINOD] 。 ? struct user { ? unsigned short u_default_mode。 ? }。 ? }。 ? unsigned short di_gid。 ? struct direct { ? char d_name[DIRSIZ]。 ? int size。 ? struct file sys_ofile[SYSOPENFILE]。 ? FILE*fd。 ? char usr_p[12]。 ? char*buf。y39。 ? printf(\nNow will install the fillsystem,please wait ... \n)。usr_id)。 ? if(!login(usr_id,usr_p)) ? return。 ? switch(sel) ? { ? case 39。 ? case 39。 ? mkdir(temp_dir)。: /* 改改 變變 當(dāng)當(dāng) 前前 目目 錄錄 */ ? printf(Please input dir name:)。 case 39。 ab_fd1=creat(2118,temp_dir,01777)。 free(buf)。: /* 退退 出出 文文 件件 系系 統(tǒng)統(tǒng) */ logout(usr_id)。 break。i+=50) /* 要要 加加 上上 2的的 原原 因因 是是 :: 每每 50個(gè)個(gè) BLOCK成成 組組 ,在在 每每 個(gè)個(gè) BLOCK組組 當(dāng)當(dāng) 中中 的的 第第 一一 個(gè)個(gè) BLOCK(稱稱 為為 地地 址址 塊塊 ) 放放 有有 整整 個(gè)個(gè) BLOCK組組 的的 地地 址址 。 } fseek(fd,DATASTART+BLOCKSIZ* (i49),SEEK_SET)。i512。 // 至至 此此 ,才才 完完 成成 512塊塊 文文 件件 塊塊 的的 定定 位位 for(i=0。 return DISKFULL。 // [NICFREE1]+1指指 向向 下下 一一 個(gè)個(gè) block組組 的的 地地 址址 塊塊 fread(block_buf,1,BLOCKSIZ,fd)。 } // 將將 待待 用用 block組組 的的 地地 址址 讀讀 入入 超超 級(jí)級(jí) 塊塊 =NICFREE1。 } ? if(==NICFREE1) ? // 表表 示示 回回 收收 的的 block已已 經(jīng)經(jīng) 可可 以以 組組 成成 一一 個(gè)個(gè) block組組 了了 ? { ? for(i=0。 ? ? fseek(fd,DATASTART+BLOCKSIZ* ([0]),SEEK_SET)。ODIREAD) return 1。 ? (user[user_id].u_gid==inodedi_gid)) return 1。 ? (user[user_id].u_uid==inodedi_uid)) return 1。 ? break。} ? if(di_ino!=1) {// 文文 件件 已已 經(jīng)經(jīng) 存存 在在 ? inode=iget(di_ino)。} ? else{inode=ialloc()。 ? struct inode*inode。 ? iput(inode)。 ? return 0。 ? if(block_off+sizeBLOCKSIZ) ? for(i=0。 ? temp_buf+=BLOCKSIZ。} 寫(xiě)文件 ? if(block_off+sizeBLOCKSIZ){ ? fseek(fd,DATASTART+inodedi_addr[block] *BLOCKSIZ+block_off,SEEK_SET)。 ? fwrite(temp_buf,1,BLOCKSIZblock_off,fd)。i++){ ? inodedi_addr[block+1+i]=balloc()。 ? } 圖圖 814 打打 開(kāi)開(kāi) 文文 件件
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1