操作系统实验报告
node_temp->di_ctime; /* 创建时间 */
node_temp->di_mtime; /* 最后一次修改时间*/ node_temp->di_block=m; /* 数据块块地址编号 */
fseek(f_stream,DINODE_START+j*BLOCK_SIZE,SEEK_SET);
fwrite(node_temp,BLOCK_SIZE,1,f_stream); //将新建文件inode写入磁盘
dir_buf[cur_inode->di_number].d_ino=j;//修改当前目录的结构 dir_buf[cur_inode->di_number].name=str;
fseek(f_stream,DATA_START+BLOCK_SIZE*cur_inode->di_block,SEEK_SET);//将当前目录信息写入文件的block区
fwrite(dir_buf,BLOCK_SIZE,1,f_stream);
fseek(f_stream,DATA_START+m*BLOCK_SIZE,SEEK_SET);//将创建的文件夹的关联文件写入磁盘
fwrite(buf_dir,BLOCK_SIZE,1,f_stream);
cur_inode->di_number++;//当前目录关联文件数加一
superBlock.s_free_inodes_count--;//超级块中空闲的inode数目减一 superBlock.s_free_blocks_count--; //超级块中空闲的block数目减一 fseek(f_stream,BLOCK_SIZE,SEEK_SET);//修改超级块 fwrite(&superBlock,BLOCK_SIZE,1,f_stream);
fseek(f_stream,2*BLOCK_SIZE,SEEK_SET);//将修改后的inode位示图和block位示图写回磁盘
fwrite(di_bitmap,BLOCK_SIZE,1,f_stream); fwrite(bk_bitmap,BLOCK_SIZE,1,f_stream); cout<<\文件夹已成功添加\
return; }
36