linux下基于内存的虚拟文件系统设计与实现内容摘要:
thisroot[i] = new dir()。 thischosefile =。 thisfileImg = new QPixmap(:/)。 FILE* fp。 fp = fopen(system,rb)。 char data[1024*16]。 if(fp != NULL) { fread(amp。 thistotaldmem,sizeof(float),1,fp)。 fread(amp。 thisfreemem,sizeof(float),1,fp)。 fread(amp。 thisoccupyblocknum,sizeof(int),1,fp)。 bool isoccupied。 int blocknum。 int nextblock。 for(int i = 0。 i1024*16。 i++) { fread(amp。 data,1024*16*sizeof(char),1,fp)。 fread(amp。 blocknum,sizeof(int),1,fp)。 fread(amp。 isoccupied,sizeof(bool),1,fp)。 fread(amp。 nextblock,sizeof(int),1,fp)。 strcpy(thismemory[i]data,data)。 thismemory[i]setblocknum(blocknum)。 thismemory[i]setisoccupied(isoccupied)。 thismemory[i]setnextblock(nextblock)。 } QFile dirfileId(dirfileId)。 (QIODevice::ReadOnly | QIODevice::Text)。 QTextStream in(amp。 dirfileId)。 QString fileId,parentId,childId。 fp = fopen(dirintdata,rb)。 int firstblock。 int occupyblocks。 thisfilenum = 0。 for(int i = 0。 i 1024。 i++) { infileId。 if(fileId != 1) filenum++。 inparentId。 inchildId。 thisroot[i]setfileId(fileId)。 thisroot[i]setparentId(parentId)。 thisroot[i]setchildId(childId)。 fread(amp。 firstblock,sizeof(int),1,fp)。 fread(amp。 occupyblocks,sizeof(int),1,fp)。 thisroot[i]setfirstblock(firstblock)。 thisroot[i]setoccupyblocks(occupyblocks)。 } } else { thisfilenum = 0。 thistotaldmem = 1024*256。 thisfreemem = thistotaldmem。 thisoccupyblocknum = 0。 } uilabel_filenumsetText(tr(%1).arg(filenum))。 uiHInfoButtonhide()。 uifileInButtonhide()。 uifileOutButtonhide()。 image =QImage(800,600,QImage::Format_ARGB32)。 (qRgb(255,255,255))。 paint(image)。 } //存储数据函数,其中保存各个块以及目录数据中的各项数据 void Widget::savadata() { FILE *fp。 fp = fopen(system,wb)。 fwrite(amp。 thistotaldmem,sizeof(float),1,fp)。 fwrite(amp。 thisfreemem,sizeof(float),1,fp)。 fwrite(amp。 thisoccupyblocknum,sizeof(int),1,fp)。 int blocknum,nextblock。 bool isoccupied。 for(int i = 0。 i1024*16。 i++) { blocknum = thismemory[i]getblocknum()。 isoccupied = thismemory[i]getisoccupied()。 nextblock = thismemory[i]getnextblock()。 fwrite(amp。 thismemory[i]data,1024*16*sizeof(char),1,fp)。 fwrite(amp。 blocknum,sizeof(int),1,fp)。 fwrite(amp。 isoccupied,sizeof(bool),1,fp)。 fwrite(amp。 nextblock,sizeof(int),1,fp)。 } fp = fopen(dirintdata,wb)。 QFile dirfileId(dirfileId)。 if(!(QIODevice::WriteOnly | QIODevice::Text)) return。 QTextStream in(amp。 dirfileId)。 QString fileId,parentId,childId。 int firstblock,occupyblocks。 for(int i = 0。 i 1024。 i++) { fileId = thisroot[i]getfileId()。 parentId = thisroot[i]getparentId()。 childId = thisroot[i]getchildId()。 infileIdendl。 inparentIdendl。 inchildIdendl。 firstblock = thisroot[i]getfirstblock()。 occupyblocks = thisroot[i]getoccupyblocks()。 fwrite(amp。 firstblock,sizeof(int),1,fp)。 fwrite(amp。 occupyblocks,sizeof(int),1,fp)。 } } //隐藏文件操作按钮 void Widget::hidefileOpButton() { uifilemodifyButtonhide()。 uifilecopyButtonhide()。 // uifilemoveButtonhide()。 uifiledeleteButtonhide()。 uifilerenameButtonhide()。 } //显示各类文件操作按钮 void Widget::showfileOpButton() { uifilemodifyButtonshow()。 uifilecopyButtonshow()。 // uifilemoveButtonshow()。 uifiledeleteButtonshow()。 uifilerenameButtonshow()。 } //画窗体的背景 void Widget::paint(QImage amp。 image) { float freepercent=(thistotaldmemthisfreemem)/thistotaldmem。 QPainter painter(amp。 image)。 (Qt::red)。 (Qt::NoPen)。 (50,100,100,100,0,360*16*freepercent)。 /*6/10)。 */ (Qt::blue)。 (50,100,100,100,360*16*freepercent,360*16360*16*freepercent)。 (Qt::blue)。 (60,220,tr(空闲 ))。 (Qt::red)。 (150,120,tr(已用 ))。 QString string。 string= tr(%1).arg(thistotaldmem)。 string = string + KB。 uitotalnumsetText(string)。 string = tr(%1).arg(thisfreemem)。 string = string + KB。 uifreenumsetText(string)。 } //画图函数 void Widget::paintEvent(QPaintEvent *) { QPainter paint(this)。 (1,1)。 (0,0,thisimage)。 } //设置与文件绑定的控件的信息 void Widget::setfileIconButton() { thischosefile =。 uifileIconButton1setIcon(QIcon(:/))。 uifileIconButton1setIconSize(QSize(40,40))。 uifileIconButton2setIcon(QIcon(:/))。 uifileIconButton2setIconSize(QSize(40,40))。 uifileIconButton3setIcon(QIcon(:/))。 uifileIconButton3setIconSize(QSize(40,40))。 uifileIconButton4setIcon(QIcon(:/))。 uifileIconButton4setIconSize(QSize(40,40))。 uifileIconButton5setIcon(QIcon(:/))。 uifileIconButton5setIconSize(QSize(40,40))。 uifileIconButton6setIcon(QIcon(:/))。 uifileIconButton6setIconSize(QSize(40,40))。 uifileIconButton7setIcon(QIcon(:/))。linux下基于内存的虚拟文件系统设计与实现
相关推荐
etheart 0324 09:36 lsof_test rwrwr 1 quietheart quietheart 507 1230 11:32 mini_script rwrwr 1 quietheart quietheart 25 1229 15:53 mini_script1 rwrwr 1 quietheart quietheart 465 1231 10:28 drwxrwxrx 2
名称: touch 使用 权限:所有使用者 使用方式: touch [acfm] [r referencefile] [file=referencefile] [t MMDDhhmm[[CC]YY][.ss]] [d time] [date=time] [time={atime,access,use,mtime,modify}] [nocreate] [help] [version] file1
成型、经过高温、高压缩、蒸养而成的一种高密度可承重的一种新型的钢结构夹层楼板,又称纤维水泥钢结构楼板。 主要优点: LOFT 钢结构夹层楼板自重轻 (50kg/m2),减少建筑物负荷 ,减少基础投资。 LOFT 钢结构夹层楼板厚度薄 ,一般为 1200240024mm, 扩大了建筑使用空间 ,隔音效果很好。 LOFT 钢结构夹层楼板密度大 ,所以强度特别大 ,每平米可承重 2020kg 以上
stem Size Used Avail Use% Mounted on /dev/sda1 144G 129G 6% / proc 0 0 0 /proc /sys 0 0 0 /sys varrun 92K 1% /var/run varlock 0 0% /var/lock udev 32K 1% /dev devshm 0 0% /dev/shm devpts 0 0 0
....................................................................................... 51 四、技术参数 :....................................................................................................
DELIGHT 18WLED 日光灯 12 DELIGHT 品牌 LED 灯管采用高效优质 LED 光源,光源效率达到 100lm/W,透明护罩的整灯效率可超过 90lm/W,整灯光有效通量超过 1620lm。 下图 DELIGHT 18W LED 灯管经积分球及远方光谱分析系统的实际测试数据信息: 图 3 . DELIGHT 18W LED 灯管测试数据图 13 图 4. DELIGHT