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

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

?? file.c

?? pl2200 zfc 開發全部文檔,源碼,
?? C
?? 第 1 頁 / 共 3 頁
字號:
            break;
        }
    }
    
    if (Rt < MAX_OPEN_FILES)
    {
        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:文件句柄
** 輸 出: 實際讀到的字節數
**         
** 全局變量: 無

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久久免费精品国产 | 成人午夜av在线| 中文幕一区二区三区久久蜜桃| 久久99久久久久| 国产亚洲欧美一级| www.亚洲人| 有坂深雪av一区二区精品| 欧美综合天天夜夜久久| 秋霞av亚洲一区二区三| 精品国产一区二区三区不卡 | 欧美精品一区二区三区很污很色的| 亚洲18女电影在线观看| 精品久久久久av影院 | 91免费看片在线观看| 日韩avvvv在线播放| 日本午夜精品视频在线观看 | 99精品桃花视频在线观看| 懂色av一区二区夜夜嗨| 午夜电影一区二区三区| 日韩毛片在线免费观看| 日韩免费看网站| 国产精品网曝门| 中文字幕的久久| 中文久久乱码一区二区| 日本一区免费视频| 国产精品成人网| 亚洲在线视频一区| 免费成人在线视频观看| 日本韩国一区二区三区| 成人av综合在线| www.日韩av| 欧美群妇大交群中文字幕| 日韩一区二区麻豆国产| 欧美一级日韩免费不卡| 久久综合久久久久88| 国产精品国产三级国产普通话三级 | 久久综合九色综合97_久久久| 中文欧美字幕免费| 亚洲第一激情av| 国内精品伊人久久久久av影院| 99久久久国产精品| 欧美一区二区视频在线观看2020| 久久久久久97三级| 亚洲福利电影网| 国产福利不卡视频| 欧美日韩不卡一区| 国产三级欧美三级日产三级99 | 91麻豆swag| 制服丝袜日韩国产| 日韩理论片网站| 七七婷婷婷婷精品国产| 日本一区二区三区电影| 亚洲v日本v欧美v久久精品| 国产精品性做久久久久久| 欧美日韩你懂得| 亚洲国产高清在线观看视频| 麻豆国产精品777777在线| 一本到三区不卡视频| 久久免费的精品国产v∧| 日本va欧美va瓶| 欧美羞羞免费网站| 亚洲天堂精品在线观看| 国产福利一区二区三区在线视频| 9191久久久久久久久久久| 亚洲乱码中文字幕综合| av资源站一区| 国产精品免费视频网站| 国产精品一区二区三区网站| 欧美日韩国产精品成人| 一二三四区精品视频| 91在线观看视频| 国产精品萝li| heyzo一本久久综合| 中文字幕不卡在线观看| 国产福利一区二区三区| 国产亚洲精品aa| 福利91精品一区二区三区| 国产午夜亚洲精品羞羞网站| 国产一区二区三区日韩| 日韩精品一区二区在线观看| 欧美aaaaa成人免费观看视频| 欧美日韩国产片| 香港成人在线视频| 欧美亚洲高清一区| 亚洲国产成人高清精品| 欧美日韩综合色| 日韩精品五月天| 欧美一区二区三区影视| 久久精品久久综合| 久久久99久久| 成人av资源在线观看| 亚洲黄网站在线观看| 欧美日韩亚洲综合| 青娱乐精品在线视频| 日韩免费高清av| 国产精品一区二区久久不卡| 国产精品无遮挡| 欧美综合亚洲图片综合区| 亚洲在线视频一区| 日韩免费高清视频| 成人午夜激情在线| 亚洲在线视频免费观看| 日韩你懂的电影在线观看| 成人一区二区视频| 亚洲五月六月丁香激情| 欧美mv日韩mv| 99re这里都是精品| 亚洲国产视频在线| 欧美高清性hdvideosex| 久久99精品国产| 国产精品色噜噜| 欧美专区日韩专区| 国产在线观看免费一区| 中文字幕一区二区日韩精品绯色| 欧美日韩免费在线视频| 国产精品99久久久久久有的能看| 伊人性伊人情综合网| 日韩视频一区二区在线观看| 91亚洲精品久久久蜜桃| 日韩av一区二区三区| 国产精品丝袜久久久久久app| 欧美无砖专区一中文字| 国产精品一品二品| 亚洲国产精品久久艾草纯爱| 国产欧美精品一区| 91精品国产一区二区三区| 色综合中文字幕国产| 国产老肥熟一区二区三区| 视频一区免费在线观看| 亚洲视频在线一区观看| 久久久精品中文字幕麻豆发布| 欧美三级日韩三级| 不卡欧美aaaaa| 久久91精品久久久久久秒播| 亚洲精品中文在线观看| 欧美激情艳妇裸体舞| 91精品国产综合久久福利软件 | 不卡一二三区首页| 精品在线免费观看| 日日欢夜夜爽一区| 一区二区视频在线| 中文字幕欧美国产| 国产亚洲精品免费| 日本一区二区三区久久久久久久久不| 91精品国产色综合久久久蜜香臀| 91丨九色丨国产丨porny| 成人理论电影网| 高清在线成人网| 成人午夜视频网站| a在线播放不卡| 99久久精品免费看国产| 波多野结衣一区二区三区| 国产成a人亚洲| 成人精品国产一区二区4080| 国产成人亚洲综合色影视 | 久久婷婷色综合| 日韩一区二区电影| 日韩欧美二区三区| 久久精品亚洲精品国产欧美kt∨| 久久久一区二区| 欧美国产视频在线| 国产精品福利一区| 一区二区欧美国产| 亚洲a一区二区| 蓝色福利精品导航| 国产福利一区二区三区视频| 不卡免费追剧大全电视剧网站| 成人av片在线观看| 在线亚洲一区二区| 日韩欧美一卡二卡| 国产三级三级三级精品8ⅰ区| 国产精品午夜电影| 一区二区三区资源| 奇米色一区二区| 成人免费的视频| 欧美日韩精品二区第二页| 欧美日韩日日骚| 久久久精品黄色| 亚洲综合丁香婷婷六月香| 五月开心婷婷久久| 国产精品一线二线三线| 91美女视频网站| 91麻豆精品国产91久久久更新时间| 欧美va亚洲va香蕉在线| 亚洲欧洲精品一区二区三区| 亚洲第一二三四区| 国产成人亚洲综合a∨婷婷 | 午夜精品免费在线| 国产成人免费在线| 欧美日韩一区二区在线观看 | www.亚洲免费av| 欧美日韩成人综合天天影院| 久久久久久久久久久99999| 一区二区日韩电影| 国产精品亚洲午夜一区二区三区| 一本色道亚洲精品aⅴ| 精品国产成人在线影院| 亚洲综合区在线| 国产 欧美在线| 欧美本精品男人aⅴ天堂|