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

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

?? file.c

?? 很全的文件系統,完整支持FAT12,FAT 16,FAt32,s市面還有書籍支持
?? 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一区二区三区免费野_久草精品视频
亚洲国产你懂的| 久久免费偷拍视频| 96av麻豆蜜桃一区二区| 成人激情av网| 成人黄色网址在线观看| 成人黄色综合网站| 91亚洲精品一区二区乱码| 成人精品免费网站| 成人午夜在线播放| 99精品国产91久久久久久| 91丝袜美腿高跟国产极品老师| 成人91在线观看| 91在线精品一区二区三区| 欧美在线观看一区| 在线不卡中文字幕| 精品日韩在线一区| 久久久久综合网| 中文字幕一区二区三| 悠悠色在线精品| 午夜精品成人在线| 精品一二三四区| 国产精品综合久久| 色综合久久综合网97色综合 | 精品免费一区二区三区| 日韩精品一区二| 国产精品婷婷午夜在线观看| 中文字幕日韩精品一区| 亚洲成人综合视频| 国产一区亚洲一区| 91久久免费观看| 日韩午夜av电影| 国产精品久久福利| 日韩av二区在线播放| 国产一二三精品| 日本久久电影网| 欧美精品一区男女天堂| 亚洲欧美视频在线观看| 蜜臀av亚洲一区中文字幕| 不卡大黄网站免费看| 欧美日韩高清在线| 日本一区二区三区在线不卡| 亚洲va韩国va欧美va精品| 国产福利不卡视频| 欧美剧情片在线观看| 国产精品久久国产精麻豆99网站 | 国产真实乱对白精彩久久| 91视频国产资源| 久久先锋影音av鲁色资源网| 亚洲美女在线国产| 国产99精品在线观看| 欧美一区二区私人影院日本| 亚洲天堂久久久久久久| 国产一区二区三区香蕉| 欧美久久久久免费| 亚洲综合一二三区| youjizz久久| 久久久精品影视| 日本中文字幕一区二区有限公司| 成人综合在线网站| 久久久五月婷婷| 日韩成人精品在线观看| 色噜噜偷拍精品综合在线| 国产日韩精品一区| 国产一区二区在线免费观看| 欧美日韩一区在线| 一级做a爱片久久| 不卡电影一区二区三区| 久久久综合视频| 另类小说图片综合网| 欧美私模裸体表演在线观看| 日韩理论片在线| 99精品视频中文字幕| 国产精品无圣光一区二区| 黄色精品一二区| 久久蜜桃av一区二区天堂| 狠狠色综合日日| 26uuuu精品一区二区| 久久国产精品一区二区| 91精品综合久久久久久| 香蕉影视欧美成人| 欧美一区二区三区在线观看| 午夜精品一区在线观看| 欧美一区二区视频免费观看| 婷婷成人综合网| 日韩欧美一二三区| 激情欧美日韩一区二区| 久久综合九色综合97_久久久| 久久精品国产久精国产爱| 精品国精品自拍自在线| 国产精品综合久久| 日韩美女精品在线| 欧美网站一区二区| 美女看a上一区| 久久精品欧美一区二区三区不卡| 国产精品一区在线观看你懂的| 国产三区在线成人av| 成人激情黄色小说| 亚洲国产cao| 精品欧美黑人一区二区三区| 成人性色生活片| 亚洲综合激情另类小说区| 欧美猛男gaygay网站| 久久国产精品99久久人人澡| 久久精品亚洲一区二区三区浴池| av电影在线观看一区| 日韩av在线免费观看不卡| 久久免费国产精品| 日本乱人伦一区| 国产在线乱码一区二区三区| 国产精品白丝在线| 欧美一区二区视频在线观看2022 | 国产精品免费丝袜| 欧美三级视频在线播放| 激情图片小说一区| 亚洲小少妇裸体bbw| 久久久亚洲精品一区二区三区| 99精品久久久久久| 久久精品国内一区二区三区| 国产精品丝袜久久久久久app| 91福利精品第一导航| 另类综合日韩欧美亚洲| 亚洲综合激情网| 中文在线一区二区| 欧美一卡二卡三卡| av不卡在线观看| 国内精品国产三级国产a久久| 成人免费在线视频观看| 在线综合+亚洲+欧美中文字幕| 国产999精品久久| 欧美aa在线视频| 亚洲人xxxx| 国产亚洲精品bt天堂精选| 欧美肥大bbwbbw高潮| 91丨porny丨在线| 国产一区二区剧情av在线| 视频一区在线视频| 亚洲视频狠狠干| 国产精品乱人伦| 国产午夜精品久久久久久免费视| 欧美三级日本三级少妇99| 成人动漫在线一区| 国产不卡在线一区| 国产精品自拍毛片| 久久精品免费看| 久久精品免费观看| 理论电影国产精品| 亚洲成人资源网| 午夜国产精品一区| 日日夜夜精品视频天天综合网| 亚洲精品免费在线播放| 亚洲欧洲成人自拍| 亚洲视频免费在线| 一区二区三区精品| 亚洲精品免费视频| 亚洲一区二区三区四区不卡| 亚洲激情五月婷婷| 亚洲最快最全在线视频| 一区二区三区四区蜜桃| 亚洲精品视频在线看| 洋洋av久久久久久久一区| 亚洲最大成人网4388xx| 一区二区理论电影在线观看| 一区二区三区在线免费播放| 亚洲精品v日韩精品| 亚洲一区二区三区在线播放 | 欧日韩精品视频| 欧美一区二区三区成人| 欧美成人bangbros| 久久精品亚洲乱码伦伦中文 | 欧美日韩和欧美的一区二区| 欧美天天综合网| 日韩精品一区二区三区视频播放| 精品理论电影在线| 国产精品人人做人人爽人人添| 1024亚洲合集| 亚洲高清免费视频| 久久精品国产一区二区| 丰满白嫩尤物一区二区| 日本乱人伦一区| 日韩精品一区二区三区四区| 国产日韩欧美麻豆| 亚洲一区视频在线观看视频| 蜜臀av国产精品久久久久| 国产激情视频一区二区三区欧美| 99在线精品观看| 日韩一区二区三区免费观看| 欧美国产一区二区| 日韩激情视频在线观看| 国产精品99久久久久久久女警| 91在线免费播放| 91精品国产高清一区二区三区蜜臀 | 国产亚洲一区二区三区四区| 欧美激情一区二区三区四区| 亚洲一区二区三区中文字幕在线| 精品一区二区三区日韩| 色综合久久天天综合网| 精品福利视频一区二区三区| 国产精品乱人伦一区二区| 青青草国产成人99久久| 色婷婷精品久久二区二区蜜臂av|