亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? file.c

?? 基于lpc2378的SD/MMC卡讀寫程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
    {
        fp = FileInfo + Rt;
        
        /* 獲取目錄開始簇號和文件名 */
        fp->DirClus = _GetFDTInfo(fp->Name, DirFileName);
        if (fp->DirClus < BAD_CLUS)
        {
            fp->Drive = GetDrive(DirFileName);     /* 獲取文件所在邏輯盤號 */

            /* 文件已經以讀寫方式打開,不能再次以讀寫方式打開 */
            if (FindOpenFileW(fp->Drive, fp->DirClus, fp->Name) == Not_Open_FILE)
            {
                if (FindFDTInfo(&temp, fp->Drive, fp->DirClus, fp->Name) == RETURN_OK)
                {
                    if ((temp.Attr & ATTR_DIRECTORY) != 0)
                    {
                       return Not_Open_FILE;
                    }
                    if (RemoveFile(DirFileName) != RETURN_OK)   /* 刪除文件 */
                    {
                       return Not_Open_FILE;
                    }
                }
                /* 創建文件 */
                for (i = 0; i < 11; i++)
                {
                    temp.Name[i] = fp->Name[i];
                }
                temp.Attr = 0;
                temp.FileSize = 0;

                temp.NTRes = 0;
                temp.CrtTimeTenth = 0;
                temp.CrtTime = 0;
                temp.CrtDate = 0;
                temp.LstAccDate = 0;
                temp.WrtTime = 0;
                temp.WrtDate = 0;

                temp.FstClusLO = 0;
                temp.FstClusHI = 0;
                if (AddFDT(fp->Drive, fp->DirClus, &temp) == RETURN_OK)       /* 增加文件 */
                {
                    /* 設置文件信息 */
                    fp->Flags = FILE_FLAGS_READ | FILE_FLAGS_WRITE;
                    fp->FileSize = 0;
                    fp->FstClus = 0;
                    fp->Clus = 0;
                    fp->Offset = 0;
                    return Rt;
                }
            }
        }
    }
    return Not_Open_FILE;
}

/*********************************************************************************************************
** 函數名稱: _FileOpenRW
** 功能描述: 只讀寫方式打開文件,內部使用
**
** 輸 入: DirFileName:用戶使用的文件名
**
** 輸 出: 文件句柄,Not_Open_FILE為不能打開
**         
** 全局變量: 無
** 調用模塊: _FileOpenR,_FileOpenW
**
** 作 者: 陳明計
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        HANDLE _FileOpenRW(char *DirFileName)
{
    HANDLE Rt;
    
    Rt = _FileOpenR(DirFileName);
    if (Rt == Not_Open_FILE)
    {
        Rt = _FileOpenW(DirFileName);
    }
    else
    {
        if (FindOpenFileW(FileInfo[Rt].Drive, FileInfo[Rt].DirClus, FileInfo[Rt].Name) == Not_Open_FILE)
        {
            FileInfo[Rt].Flags |=  (FILE_FLAGS_WRITE | FILE_FLAGS_READ);
        }
        else
        {
            FileInfo[Rt].Flags = 0;
            Rt = Not_Open_FILE;
        }
    }
    return Rt;
}

/*********************************************************************************************************
** 函數名稱: FileOpen
** 功能描述: 以指定方式打開文件
**
** 輸 入: DirFileName:用戶使用的文件名
**        Type:打開方式
** 輸 出: 文件句柄,Not_Open_FILE為不能打開
**         
** 全局變量: 無
** 調用模塊: _FileOpenR,_FileOpenW,_FileOpenRW
**
** 作 者: 陳明計
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        HANDLE FileOpen(char *DirFileName, char *Type)
{
    HANDLE Rt;

    Rt = Not_Open_FILE;    
    strupr(Type);
    strupr(DirFileName);
    if (Type[0] == 'R')
    {
        if (Type[1] == 'W')
        {
            Rt = _FileOpenRW(DirFileName);
        }
        else
        {
            Rt = _FileOpenR(DirFileName);
        }
        return Rt;
    }
    if (Type[0] == 'W')
    {
        if (Type[1] == 'R')
        {
            Rt = _FileOpenRW(DirFileName);
        }
        else
        {
            Rt = _FileOpenW(DirFileName);
        }
    }
    return Rt;
}

/*********************************************************************************************************
** 函數名稱: FileClose
** 功能描述: 關閉指定文件
**
** 輸 入: Handle:文件句柄
**
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明 
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 FileClose(HANDLE Handle)
{
    uint8 Rt;
    FDT FileFDT;
    MY_FILE *fp;
    
    Rt = PARAMETER_ERR;
    if (Handle >= 0 && Handle < MAX_OPEN_FILES)
    {
        Rt = RETURN_OK;
        fp = FileInfo + Handle;
        if ((fp->Flags & FILE_FLAGS_WRITE) == FILE_FLAGS_WRITE)
        {
            Rt = FindFDTInfo(&FileFDT, fp->Drive, fp->DirClus, fp->Name);
            if (Rt == RETURN_OK)
            if (FileFDT.FileSize < fp->FileSize)
            {
                FileFDT.FileSize = fp->FileSize;
                if (FileFDT.FstClusLO == 0)
                if (FileFDT.FstClusHI == 0)
                {
                    FileFDT.FstClusLO = fp->FstClus & 0xffff;
                    FileFDT.FstClusHI = (fp->FstClus >> 16) & 0xffff;
                }
                ChangeFDT(fp->Drive, fp->DirClus, &FileFDT);
            }
        }
        fp->Flags = 0;
    }
    return Rt;
}

/*********************************************************************************************************
** 函數名稱: FileGetCh
** 功能描述: 從文件讀一個字節
**
** 輸 入: Ch:返回讀到的數據
**        Handle:文件句柄
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明 
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 2004年4月10日
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 FileGetCh(uint8 *Ch, HANDLE Handle)
{
    uint32 i, j, SecIndex;
    MY_FILE *fp;
    Disk_Info * DiskInfo;
    uint8 Rt;
    uint8 *Buf;
    
    Rt = PARAMETER_ERR;
    fp = FileInfo + Handle;
    if (Handle >= 0 && Handle < MAX_OPEN_FILES)     /* Handle是否有效 */
    if (fp->Flags != 0)                             /* 對應的打開文件信息表是否已使用 */
    {
        Rt = FILE_EOF;
        if (fp->Offset >= fp->FileSize)
        {
            /* 如果讀數據超出文件的長度,看一看誰否有別的程序正在寫這個文件 */
            /* 如果有,則可能文件的長度有變化,更正之*/
            Handle = FindOpenFileW(fp->Drive, fp->DirClus, fp->Name);
            if (Handle < MAX_OPEN_FILES)
            {
                fp->FileSize = FileInfo[Handle].FileSize;
                if (fp->Offset == 0)
                {
                    fp->FstClus = FileInfo[Handle].FstClus;
                    fp->Clus = FileInfo[Handle].Clus;
                }
            }
        }
        Rt = FILE_EOF;
        if (fp->Offset < fp->FileSize)              /* 是否到文件結束 */
        {
            Rt = NOT_FIND_DISK;
                /* 獲取文件所在邏輯盤信息 */
            DiskInfo = GetDiskInfo(fp->Drive);
            if (DiskInfo != NULL)
            {
                /* 計算數據所在扇區 */
                j = fp->Offset % (DiskInfo->SecPerClus * DiskInfo->BytsPerSec);
                i = j / DiskInfo->BytsPerSec;
                j = j % DiskInfo->BytsPerSec;
                SecIndex = (fp->Clus - 2) * DiskInfo->SecPerClus + 
                           DiskInfo->DataStartSec + i;
                Rt = SECTOR_READ_ERR;
                /* 打開扇區 */
                Buf = OpenSec(fp->Drive, SecIndex);
                if (Buf != NULL)
                {
                    /* 讀取扇區數據 */
                    if (ReadSec(fp->Drive, SecIndex) == RETURN_OK)
                    {
                        /* 讀取數據 */
                        *Ch = Buf[j];
                        /* 調整文件指針 */
                        fp->Offset++;
                        j++;
                        if (j >= DiskInfo->BytsPerSec)
                        {
                            i++;
                            if (i >= DiskInfo->SecPerClus)
                            {
                                fp->Clus = FATGetNextClus(fp->Drive, fp->Clus);
                            }
                        }
                        Rt = RETURN_OK;
                    }
                    /* 關閉扇區 */
                    CloseSec(fp->Drive, SecIndex);
                }
            }
        }
    }
    return Rt;
}

/*********************************************************************************************************
** 函數名稱: FileRead
** 功能描述: 讀取文件
**
** 輸 入: Buf:保存讀回的數據
**        Size:要讀的字節數
**        Handle:文件句柄
** 輸 出: 實際讀到的字節數
**         
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint32 FileRead(void *Buf, uint32 Size, HANDLE Handle)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美一区二区三区| 91麻豆精品国产91久久久久久久久 | 国产亚洲精品免费| 国产综合久久久久影院| 国产日韩精品一区二区浪潮av| 久久精品国产在热久久| 精品久久久久99| 国产不卡在线播放| 一区二区在线观看视频| 欧美无砖砖区免费| 男女男精品网站| 久久精品一级爱片| 日本乱码高清不卡字幕| 日韩成人精品在线| 久久精品人人做人人综合| a级高清视频欧美日韩| 亚洲综合一区在线| 精品国产凹凸成av人导航| 福利一区二区在线观看| 亚洲精品精品亚洲| 欧美一区二区在线不卡| 国产精品99久久久久久似苏梦涵| 国产精品免费久久久久| 8x8x8国产精品| 国产成人亚洲精品青草天美| 一区二区三区国产精华| 精品精品欲导航| 91同城在线观看| 亚洲成人自拍网| 国产精品水嫩水嫩| 欧美精品18+| www.久久久久久久久| 日韩av电影免费观看高清完整版 | 日韩三级av在线播放| 丁香天五香天堂综合| 午夜精品一区二区三区免费视频| 精品国产伦一区二区三区观看方式| 99国产精品久久久| 经典三级一区二区| 一区二区三区欧美视频| 国产色91在线| 欧美成人激情免费网| 欧美性生活影院| 成人午夜激情影院| 免费av网站大全久久| 亚洲精品国产一区二区三区四区在线| 日韩欧美国产系列| 欧美色电影在线| 91网站视频在线观看| 国产呦萝稀缺另类资源| 视频一区国产视频| 一区二区三区国产精品| 国产精品丝袜久久久久久app| 欧美成人激情免费网| 欧美亚洲动漫精品| 99久久综合国产精品| 国产一区在线视频| 日韩黄色小视频| 夜夜亚洲天天久久| 亚洲丝袜精品丝袜在线| 久久久www成人免费无遮挡大片 | 国产一区二区三区最好精华液 | 蜜臀av性久久久久蜜臀av麻豆 | 亚洲欧洲精品天堂一级| 久久蜜臀精品av| 成人免费在线观看入口| 亚洲国产成人午夜在线一区| 欧美狂野另类xxxxoooo| 欧美丝袜第三区| 在线免费不卡电影| 色婷婷精品大视频在线蜜桃视频| 国产91精品久久久久久久网曝门| 蜜臀av性久久久久蜜臀av麻豆| 亚洲成人777| 午夜精品一区二区三区电影天堂 | 成人福利视频网站| 国产精品系列在线观看| 国产精品亚洲一区二区三区在线| 国产在线播放一区二区三区| 精品一区二区三区在线播放| 国产一区二区三区av电影| 狠狠狠色丁香婷婷综合久久五月| 成人精品视频一区二区三区尤物| 欧美视频一区二区三区在线观看| 99久久精品国产导航| 91原创在线视频| 色综合久久久久综合99| 色老汉av一区二区三区| 在线亚洲免费视频| 亚洲观看高清完整版在线观看| 美腿丝袜亚洲一区| 久久不见久久见免费视频7| 蜜臀av一区二区在线免费观看| 久久国产免费看| 国产精品一区二区久久精品爱涩 | www.成人在线| 在线精品视频小说1| 欧美日韩在线精品一区二区三区激情 | 亚洲综合丁香婷婷六月香| 亚洲大片精品永久免费| 久久精品久久99精品久久| 国产99久久久国产精品潘金 | 午夜精品一区二区三区电影天堂| 青青草国产精品亚洲专区无| 久久99久久99| 不卡在线观看av| 欧美日韩在线一区二区| 精品国产3级a| 亚洲精品水蜜桃| 免费一级欧美片在线观看| 国产成人精品1024| 欧美曰成人黄网| 日韩久久久精品| ...av二区三区久久精品| 一区二区成人在线观看| 久久99精品国产麻豆婷婷| 成人国产在线观看| 欧美美女视频在线观看| 久久久亚洲午夜电影| 亚洲午夜激情网页| 国产一区二区精品久久91| 91久久精品一区二区三| 欧美成人一级视频| 亚洲精品国产无天堂网2021| 久88久久88久久久| 色综合网站在线| 精品国产乱码久久久久久闺蜜 | 国产精品女同一区二区三区| 亚洲高清一区二区三区| 成人性生交大片免费看在线播放 | 91久久精品一区二区| 久久综合色天天久久综合图片| 亚洲精品国产一区二区三区四区在线| 久久国产三级精品| 欧美日韩亚洲综合| 国产精品久久久久久久久晋中| 日韩精品一级二级| 99国产精品99久久久久久| 欧美xxxxxxxx| 五月开心婷婷久久| 91在线一区二区三区| 久久婷婷国产综合国色天香| 午夜精彩视频在线观看不卡| 成人不卡免费av| 久久久久久免费网| 日本一区中文字幕| 欧美亚洲另类激情小说| 国产精品视频免费看| 国产最新精品免费| 欧美成va人片在线观看| 欧美aaaaaa午夜精品| 欧美精品自拍偷拍动漫精品| 亚洲精品成人精品456| 成人永久aaa| 国产性做久久久久久| 黄色日韩网站视频| 亚洲精品在线免费播放| 久久99国内精品| 日韩一区二区视频| 日韩激情一区二区| 欧美精品第1页| 日本欧美一区二区| 日韩一区二区免费电影| 日本不卡一区二区| 69堂精品视频| 免费观看91视频大全| 欧美二区三区91| 美腿丝袜亚洲三区| 欧美岛国在线观看| 国产做a爰片久久毛片| 久久影视一区二区| 国产精品18久久久久久vr| 久久精品免视看| 高清不卡在线观看av| 成人欧美一区二区三区| 色婷婷av一区二区三区之一色屋| 亚洲欧洲国产日韩| 色婷婷亚洲综合| 婷婷久久综合九色综合伊人色| 欧美久久一区二区| 奇米精品一区二区三区在线观看一 | 亚洲欧美乱综合| 欧美日韩在线免费视频| 美女视频免费一区| 久久精品亚洲一区二区三区浴池| 国产成人亚洲精品青草天美| 亚洲人成伊人成综合网小说| 欧美色大人视频| 国产在线不卡一卡二卡三卡四卡| 欧美激情一区二区三区不卡| 色天使久久综合网天天| 五月天一区二区| 国产午夜精品一区二区三区四区| 成人av网站在线观看免费| 亚洲一区二区三区三| 精品少妇一区二区三区视频免付费| 国精产品一区一区三区mba桃花| 国产精品护士白丝一区av| 欧美理论在线播放| 国产乱理伦片在线观看夜一区|