搜索
bottom↓
回复: 1

关于FAT的问题

[复制链接]

出0入0汤圆

发表于 2009-11-28 09:05:05 | 显示全部楼层 |阅读模式
下面是制作MP3程序中有关FAT的程序。有些地方看不懂,盼高手指点一下。大致意思是通过文件起始簇号该文件在FAT表中对应的簇号的记录,也就是文件的下一簇簇号。if(FAT32_Enable)offset = cluster/128;是不是查找这个簇号在FAT表所在的扇区?为什么FAT32要除以128呢?
还有后面的offset=cluster%128;//find the position,   sector=((unsigned long *)buffer)[offset];是不是查找簇号在FAT表中的所在扇区的偏移,然后读出该偏移的数据,也就是下一簇号的记录?
反正我搞得稀里湖涂的。winhex我用得不好,要是有个教程就好了,哪里有下的啊




//读下一簇簇号
//Return the cluster number of next cluster of file
//Suitable for system which has limited RAM
unsigned long FAT_NextCluster(unsigned long cluster)
{
        BYTE buffer[512];
        DWORD sector;
        DWORD offset;
        if(FAT32_Enable)offset = cluster/128;//??
        else offset = cluster/256;//??
        if(cluster<2)return 0x0ffffff8;//??
        sector=FirstFATSector+offset;//calculate the actual sector
        //文件所在的簇在FAT表内的偏移
        if(FAT_ReadSector(sector,buffer))return 0x0ffffff8;//read fat table / return 0xfff8 when error occured

        if(FAT32_Enable)
        {
                offset=cluster%128;//find the position,
                sector=((unsigned long *)buffer)[offset];       
        }
        else
        {
                offset=cluster%256;//find the position
                sector=((unsigned int *)buffer)[offset];
        }
        return (unsigned long)sector;//return the cluste number
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2009-11-28 09:57:43 | 显示全部楼层
网站提供FAT白皮书的,你找找看。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-8 18:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表