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

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

?? file.c

?? zlg_fs
?? 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一区二区三区免费野_久草精品视频
91免费小视频| 国产精品久久久久一区 | 91在线观看视频| 欧美日韩色一区| 中文天堂在线一区| 韩国女主播一区| 欧美日韩一级黄| 综合分类小说区另类春色亚洲小说欧美| 亚洲国产一区二区视频| 成人高清免费在线播放| 精品少妇一区二区三区| 午夜精品久久久久久不卡8050| 99久久精品99国产精品| 精品国产三级电影在线观看| 五月天欧美精品| 欧美性色黄大片| 亚洲三级电影网站| 成人国产精品视频| 亚洲国产成人一区二区三区| 国产在线不卡一卡二卡三卡四卡| 欧美绝品在线观看成人午夜影视| 一区二区三区四区亚洲| 9色porny自拍视频一区二区| 欧美激情中文不卡| 国产毛片精品一区| 精品国产一区二区三区久久影院| 日韩影院免费视频| 欧美精品 日韩| 午夜精品在线看| 欧美日韩成人在线| 丝袜亚洲另类欧美综合| 欧美日韩一区二区三区高清 | 精品国产3级a| 精品一区二区三区视频| 日韩午夜激情电影| 久久精品国产一区二区三 | 午夜av一区二区三区| 欧美日韩高清影院| 日韩电影免费在线看| 日韩午夜激情免费电影| 久久97超碰色| 国产欧美综合在线| 97久久精品人人爽人人爽蜜臀| 国产精品久久网站| 91视视频在线观看入口直接观看www| 国产精品国产a| 99精品视频在线免费观看| 亚洲男人天堂av| 欧美久久久久免费| 免费精品99久久国产综合精品| 日韩一区二区三区视频在线| 国产乱一区二区| 中文字幕在线播放不卡一区| 日本精品裸体写真集在线观看| 亚洲成人自拍偷拍| 日韩视频在线你懂得| 成人丝袜视频网| 亚洲狠狠丁香婷婷综合久久久| 欧美日韩成人在线| 国产精品一区二区在线看| 亚洲美女在线国产| 日韩一级二级三级精品视频| 国产精品综合二区| 一区二区高清免费观看影视大全| 欧美精品xxxxbbbb| 99在线热播精品免费| 午夜精彩视频在线观看不卡| 精品福利一二区| 在线免费一区三区| 国产一区亚洲一区| 亚洲午夜在线观看视频在线| 久久久亚洲国产美女国产盗摄| 色婷婷国产精品综合在线观看| 久久成人麻豆午夜电影| 一区二区三区自拍| 国产欧美日韩另类一区| 欧美日本国产一区| 91丨九色丨国产丨porny| 日本欧美久久久久免费播放网| 国产精品色婷婷| 日韩欧美资源站| 在线观看区一区二| 国产白丝网站精品污在线入口| 午夜精品视频一区| 亚洲人xxxx| 欧美韩日一区二区三区| 欧美一区二区三区系列电影| 91一区二区在线观看| 狠狠色狠狠色综合系列| 亚洲成人av一区二区| 亚洲欧美激情小说另类| 欧美激情一区二区三区全黄| 精品免费视频.| 精品视频一区二区不卡| 99国产欧美久久久精品| 国产激情视频一区二区三区欧美 | 亚洲免费视频中文字幕| 久久婷婷国产综合精品青草| 欧美一区二区在线播放| 欧美午夜精品免费| 在线看国产一区二区| 成人不卡免费av| 国产99久久久精品| 国产激情偷乱视频一区二区三区| 久久se精品一区二区| 久久精品国内一区二区三区| 日本不卡123| 蜜臀av一区二区在线免费观看| 肉色丝袜一区二区| 亚洲成va人在线观看| 亚洲成人综合网站| 天天操天天色综合| 天涯成人国产亚洲精品一区av| 亚洲电影在线播放| 亚洲aⅴ怡春院| 日本在线观看不卡视频| 蜜臀国产一区二区三区在线播放| 日产国产欧美视频一区精品| 蜜桃视频在线一区| 婷婷六月综合亚洲| 蜜桃91丨九色丨蝌蚪91桃色| 麻豆精品一区二区综合av| 麻豆国产精品视频| 国产毛片精品一区| 成人精品免费看| 色综合色狠狠天天综合色| 91成人国产精品| 欧美日韩高清影院| www激情久久| 国产精品精品国产色婷婷| 一区二区三区不卡在线观看| 一区二区三区在线免费视频| 日韩精品免费专区| 九九国产精品视频| 99精品久久只有精品| 91玉足脚交白嫩脚丫在线播放| 91极品美女在线| 56国语精品自产拍在线观看| 久久你懂得1024| 亚洲三级在线观看| 日本中文字幕一区二区有限公司| 国产剧情av麻豆香蕉精品| 99精品国产99久久久久久白柏| 欧美日韩高清影院| 久久久国产精品不卡| 一区二区三国产精华液| 蜜桃视频一区二区| youjizz久久| 91精品国产综合久久久久久久| 久久综合色鬼综合色| 亚洲欧美激情插 | 日韩在线播放一区二区| 国产酒店精品激情| 欧美日韩精品是欧美日韩精品| 久久久久久久电影| 亚洲午夜激情网站| 国产成人精品在线看| 欧美精品自拍偷拍动漫精品| 国产欧美一区二区在线| 亚洲已满18点击进入久久| 久久精品99久久久| 91黄色免费观看| 久久久99精品免费观看不卡| 亚洲国产日韩a在线播放| 国产美女在线精品| 欧美肥妇bbw| 一区二区三区四区在线播放 | 韩国女主播一区二区三区| 91福利国产精品| 国产日产欧美一区| 奇米影视在线99精品| 欧美在线免费视屏| 国产欧美一区二区精品秋霞影院| 日本伊人色综合网| 色8久久人人97超碰香蕉987| 国产日韩影视精品| 蜜桃一区二区三区在线观看| 精品视频一区三区九区| 亚洲三级电影全部在线观看高清| 国模套图日韩精品一区二区 | 色香蕉成人二区免费| 国产亚洲一区二区三区四区 | 午夜电影网亚洲视频| 色婷婷综合在线| 国产精品伦一区| 国产精品一区二区视频| 日韩免费观看高清完整版| 亚洲国产成人av好男人在线观看| 91美女在线视频| 亚洲天堂久久久久久久| 成人av综合一区| 国产精品国产三级国产普通话蜜臀 | 国产另类ts人妖一区二区| 91精品国产91热久久久做人人| 亚洲一区二区三区中文字幕在线| 91一区二区三区在线观看| 成人欧美一区二区三区在线播放| 成人久久18免费网站麻豆| 久久久久国产精品免费免费搜索| 国产精品亚洲成人|