音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

我發(fā)現(xiàn)zlg/fs文件系統(tǒng)有錯(cuò)誤!

作者:liufang520 欄目:ARM技術(shù)
我發(fā)現(xiàn)zlg/fs文件系統(tǒng)有錯(cuò)誤!
1. 刪除文件函數(shù)RemoveFile()中:                
(1)if (FindOpenFile(Drive, ClusterIndex, DirName) < MAX_OPEN_FILES)
{刪除文件}
應(yīng)該改為:
(2)if (FindOpenFile(Drive, ClusterIndex, DirName) >= MAX_OPEN_FILES)
{刪除文件}
因?yàn)镕indOpenFile()的返回值為打開(kāi)的文件的句柄,如果(1)對(duì),則說(shuō)明文件已經(jīng)打開(kāi),此時(shí)是不能刪除文件的,所以我覺(jué)得應(yīng)該改為(2).
2. 改變當(dāng)前目錄函數(shù)ChangeDir(Path)中:
有調(diào)用函數(shù)GetDirClusterIndex(pPath):               
if (FindFDTInformation(&Rt, Drive, ClusIndex, DirName) != RETURN_OK)
{uiErr = BAD_CLUSTER;
break;
}
DirName是Path中的目錄名,if語(yǔ)句中既然成立,證明能找到Path中的目錄名,Path中的目錄名不是現(xiàn)在要改的嗎?怎么會(huì)存在呢?



2樓: >>參與討論
liwenz
我一直沒(méi)有看懂
我很想看懂這一部分,可沒(méi)有資料,沒(méi)辦法看懂。
看來(lái)你有什么資料,還能看出他的問(wèn)題。
你是怎么看懂的,望能交流

3樓: >>參與討論
lyy1981

1,如果磁盤(pán)里沒(méi)有那個(gè)文件,怎么刪除?流程可能是 : 打開(kāi)文件---〉(如果文件存才)  ---〉 刪除文件,這里也有個(gè)問(wèn)題:文件句柄如果用完,那個(gè)文件無(wú)法打開(kāi),也就不能刪除,不清楚zlg fs這點(diǎn)有沒(méi)有考慮
2,path = dirname + filename(也可能是目錄),if語(yǔ)句的目的好像是在判斷path指定的目錄是否存在,如果不存在,返回。建議樓主把代碼多看幾遍,這點(diǎn)僅從這點(diǎn)代碼無(wú)法判斷fs 是否有錯(cuò)。測(cè)試一下,應(yīng)該就知道了。。

4樓: >>參與討論
liufang520
re:lyy1981
我覺(jué)得你說(shuō)的不對(duì):
1. 對(duì)于刪除文件函數(shù),有判斷文件是否存在,那是對(duì)的,我說(shuō)的錯(cuò)誤是在后面判斷文件是否打開(kāi),只有文件關(guān)閉才能刪除,它這里是用FindOpenFile()來(lái)判斷的,這個(gè)函數(shù)的返回值有二鐘情況:打開(kāi)的文件的句柄;沒(méi)有找到打開(kāi)的文件。應(yīng)該為后者才能被刪除!而書(shū)中的判斷剛好反了!
2. 你說(shuō)的是沒(méi)錯(cuò),可是不存在返回的話(huà),這個(gè)返回值就是改變當(dāng)前目錄函數(shù)ChangeDir(Path)的返回值,因?yàn)樵谶@個(gè)函數(shù)中,只有返回值不等于 BAD_CLUSTER才能改變目錄!也就是改變邏輯盤(pán)信息中的當(dāng)前目錄首簇號(hào)這一項(xiàng),這是改變目錄的實(shí)質(zhì)。
   你覺(jué)得呢?

5樓: >>參與討論
liufang520
re:lyy1981
你有看過(guò)或調(diào)試過(guò)這個(gè)文件系統(tǒng)嗎?
我這是在調(diào)試中才發(fā)現(xiàn)的,不調(diào)試我哪看的出來(lái)?

6樓: >>參與討論
liufang520
re
程序在《ARM嵌入式系統(tǒng)軟件開(kāi)發(fā)實(shí)例》這本書(shū)中!

7樓: >>參與討論
lyy1981
我沒(méi)調(diào)過(guò)
 
8樓: >>參與討論
liufang520
re
我改了以上2個(gè)函數(shù)后,調(diào)試都通過(guò)了!

還有,周立功文件系統(tǒng)讀寫(xiě)文件很慢很慢,我寫(xiě)一個(gè)35K的文件都花了40S,這樣肯定不行。
我把讀寫(xiě)文件函數(shù)自己寫(xiě)了一下,結(jié)果很快,不到1S就好了!
看來(lái)這個(gè)文件系統(tǒng)還有很多問(wèn)題哦!

9樓: >>參與討論
eleven11
文件系統(tǒng)全部是線(xiàn)性查找的
我也修改了查詢(xún)算法

參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)問(wèn):
請(qǐng)問(wèn)LPC213X/214X的Vref電壓范圍
LPC213X I2C問(wèn)題求教!
請(qǐng)問(wèn)LPC221X數(shù)據(jù)手冊(cè)中,時(shí)序部分Tcyc是什么含義?
請(qǐng)教一個(gè)關(guān)于LPC2134應(yīng)用的問(wèn)題!
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)