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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? file.c

?? 很全的文件系統(tǒng),完整支持FAT12,FAT 16,FAt32,s市面還有書籍支持
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint32 FileRead(void *Buf, uint32 Size, HANDLE Handle)
{
    uint8 *temp;
    uint32 i;
    
    temp = (uint8 *)Buf;
    for (i = 0; i < Size; i++)
    {
        if (FileGetCh(temp, Handle) != RETURN_OK)
        {
            break;
        }
        temp++;
    }
    return i;
}

/*********************************************************************************************************
** 函數(shù)名稱: FilePutCh
** 功能描述: 寫一個(gè)字節(jié)到文件
**
** 輸 入: Ch:要寫的數(shù)據(jù)
**        Handle:文件句柄
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關(guān)于返回值的說明 
** 全局變量: 無
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2004年4月10日
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 FilePutCh(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) & FILE_FLAGS_WRITE) != 0)       /* 對(duì)應(yīng)的打開文件信息表是否已使用 */
    {
        Rt = FILE_EOF;
        if (fp->Offset <= fp->FileSize)
        {
            Rt = NOT_FIND_DISK;
                /* 獲取文件所在邏輯盤信息 */
            DiskInfo = GetDiskInfo(fp->Drive);
            if (DiskInfo != NULL)
            {
                
                /* 調(diào)整文件指針 */
                j = (fp->Offset) % (DiskInfo->SecPerClus * DiskInfo->BytsPerSec); 
                
                if (j == 0)
                {
                    if (fp->Offset < fp->FileSize)
                    {
                        fp->Clus = FATGetNextClus(fp->Drive, fp->Clus);
                    }
                    else
                    {
                        i = FATAddClus(fp->Drive, fp->Clus);
                        if (i >= BAD_CLUS)
                        {
                            return DISK_FULL;
                        }
                        fp->Clus = i;
                        if (fp->FstClus == EMPTY_CLUS)
                        {
                            fp->FstClus = i;
                        }
                    }
                }
                
                /* 計(jì)算數(shù)據(jù)所在扇區(qū) */
                i = j / DiskInfo->BytsPerSec;
                j = j % DiskInfo->BytsPerSec;
                SecIndex = (fp->Clus - 2) * DiskInfo->SecPerClus + DiskInfo->DataStartSec + i;
                Rt = SECTOR_READ_ERR;
                
                /* 調(diào)整打開文件信息表 */
                fp->Offset++;
                if (fp->Offset > fp->FileSize)
                {
                    fp->FileSize = fp->Offset;
                }

                /* 打開扇區(qū) */
                Buf = OpenSec(fp->Drive, SecIndex);
                if (Buf != NULL)
                {
                    /* 寫扇區(qū)數(shù)據(jù) */
                    if (ReadSec(fp->Drive, SecIndex) == RETURN_OK)
                    {
                        /* 存儲(chǔ)數(shù)據(jù) */
                        Buf[j] = Ch;
                        WriteSec(fp->Drive, SecIndex);
                        Rt = RETURN_OK;
                    }
                    CloseSec(fp->Drive, SecIndex);
                }
            }
        }
    }
    return Rt;
}

/*********************************************************************************************************
** 函數(shù)名稱: FileWrite
** 功能描述: 寫文件
**
** 輸 入: Buf:要寫的數(shù)據(jù)
**        Size:要寫的字節(jié)數(shù)
**        Handle:文件句柄
** 輸 出: 實(shí)際寫的字節(jié)數(shù)
**         
** 全局變量: 無
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint32 FileWrite(void *Buf, uint32 Size, HANDLE Handle)
{
    uint8 *temp;
    uint32 i;
    
    temp = (uint8 *)Buf;
    for (i = 0; i < Size; i++)
    {
        if (FilePutCh(*temp, Handle) != RETURN_OK)
        {
            break;
        }
        temp++;
    }
    return i;
}

/*********************************************************************************************************
** 函數(shù)名稱: FileCloseAll
** 功能描述: 關(guān)閉所有打開的文件
**
** 輸 入: 無
**
** 輸 出: 無
**         
** 全局變量: FileInfo
** 調(diào)用模塊: AllCacheWriteBack
**
** 作 者: 陳明計(jì)
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void FileCloseAll(void)
{
    uint32 i;

    for (i = 0; i < MAX_OPEN_FILES; i++)
    {
        FileClose(i);
    }
    AllCacheWriteBack();
}

/*********************************************************************************************************
** 函數(shù)名稱: FileEof
** 功能描述: 判斷文件是否到讀\寫到文件尾
**
** 輸 入: Handle:文件句柄
**
** 輸 出: 0:否
**        1:是 
** 全局變量: FileInfo
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 FileEof(HANDLE Handle)
{
    if (Handle < MAX_OPEN_FILES)
    if (FileInfo[Handle].Offset < FileInfo[Handle].FileSize)
    {
        return FALSE;
    }
    return TRUE;
}

/*********************************************************************************************************
** 函數(shù)名稱: FileSeek
** 功能描述: 移動(dòng)文件讀\寫位置
**
** 輸 入: Handle:文件句柄
**        offset:移動(dòng)偏移量
**        Whence:移動(dòng)模式SEEK_SET:從文件頭計(jì)算SEEK_CUR:從當(dāng)前位置計(jì)算SEEK_END:從文件尾計(jì)算
** 輸 出: 無
**         
** 全局變量: 無
** 調(diào)用模塊: 無
**
** 作 者: 陳明計(jì)
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2004年4月10日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計(jì)
** 日 期: 2004年7月12日
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 FileSeek(HANDLE Handle, int32 offset, uint8 Whence)
{
    uint8 Rt;
    uint32 i, Clus;
    MY_FILE *fp;
    Disk_Info * DiskInfo;
    
    Rt = PARAMETER_ERR;
    fp = FileInfo + Handle;
    if (Handle >= 0 && Handle < MAX_OPEN_FILES)     /* Handle是否有效 */
    if (fp->Flags  != 0)                            /* 對(duì)應(yīng)的打開文件信息表是否已使用 */
    {
        Rt = RETURN_OK;
        switch (Whence)
        {
            case SEEK_END:             /* 從文件尾計(jì)算 */
                fp->Offset = fp->FileSize - offset;
                offset = -offset;
                break;
            case SEEK_SET:
                fp->Offset = offset;
                break;
            case SEEK_CUR:             /* 從當(dāng)前位置計(jì)算 這里不用break是正確的*/
                i = fp->Offset + offset;
                break;
            default:
                Rt = PARAMETER_ERR;
                break;
        }
        /* 改變當(dāng)前簇號(hào) */
        if (Rt == RETURN_OK)
        {
            if (fp->Offset > fp->FileSize)
            {
                if (offset > 0)
                {
                    fp->Offset = fp->FileSize;
                }
                else
                {
                    fp->Offset = 0;
                }
            }
            Rt = NOT_FIND_DISK;
            DiskInfo = GetDiskInfo(fp->Drive);
            if (DiskInfo != NULL)
            {
                Rt = RETURN_OK;
                i = fp->Offset / (DiskInfo->BytsPerSec * DiskInfo->SecPerClus);
                Clus = fp->FstClus;
                for (; i != 0; i--)
                {
                    Clus = FATGetNextClus(fp->Drive, Clus);
                    if (Clus >= BAD_CLUS)
                    {
                        Rt = FAT_ERR;
                        break;
                    }
                }
                fp->Clus = Clus;
            }
        }
    }
    return Rt;
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕精品一区二区三区精品| 另类成人小视频在线| 一区2区3区在线看| 美女视频第一区二区三区免费观看网站| 福利电影一区二区三区| 日韩一区二区免费电影| 一区二区三区在线影院| 成人免费福利片| 精品国产乱码久久久久久久久 | 日本亚洲三级在线| 99久久99久久久精品齐齐| 久久亚洲免费视频| 人人狠狠综合久久亚洲| 欧美老女人在线| 亚洲午夜免费福利视频| 91久久香蕉国产日韩欧美9色| 久久久不卡影院| 国产美女视频一区| 精品欧美一区二区在线观看| 日韩和欧美的一区| 欧美日韩在线播放三区四区| 一卡二卡欧美日韩| 91黄视频在线观看| 一区二区三区高清| 欧美探花视频资源| 天堂在线一区二区| 欧美一二三四区在线| 婷婷成人综合网| 欧美一区二区三区的| 日韩电影在线观看一区| 欧美一区二视频| 久久精品国产亚洲a| 日韩一区二区三区免费观看| 蜜桃av一区二区三区电影| 日韩亚洲欧美一区二区三区| 精品中文字幕一区二区| 久久综合网色—综合色88| 国产精品69毛片高清亚洲| 国产精品视频一区二区三区不卡| 国产福利精品一区二区| 国产精品久久免费看| 色婷婷亚洲综合| 亚洲chinese男男1069| 欧美一区二区视频网站| 国产呦精品一区二区三区网站| 26uuu精品一区二区| 成人av在线一区二区三区| 亚洲品质自拍视频| 欧美日韩电影在线| 国产最新精品免费| 中文字幕一区三区| 欧美人牲a欧美精品| 精品一区二区三区免费毛片爱| 久久精品人人做| 在线观看av一区| 久久电影网站中文字幕| 国产精品免费观看视频| 欧洲中文字幕精品| 国产剧情一区二区| 亚洲一区二区三区小说| 91精品国产黑色紧身裤美女| 国产成人免费视频精品含羞草妖精| 综合网在线视频| 日韩欧美的一区| 91免费看视频| 国产在线视视频有精品| 美女脱光内衣内裤视频久久影院| 精品少妇一区二区三区视频免付费| 成人av免费在线| 麻豆91精品91久久久的内涵| 国产精品久久久久一区| 91精品国产综合久久久久久久久久| 国产成人精品aa毛片| 日韩精彩视频在线观看| 国产精品久久久久久久久果冻传媒| 欧美高清激情brazzers| 免费观看在线色综合| 亚洲免费观看高清完整版在线观看熊| 日韩三级.com| 99精品国产视频| 激情丁香综合五月| 日韩综合在线视频| 亚洲免费看黄网站| 欧美高清在线一区| 欧美成人午夜电影| 在线亚洲高清视频| 国产精品 日产精品 欧美精品| 日韩制服丝袜av| 伊人婷婷欧美激情| 国产欧美一区二区三区在线老狼| 欧美日韩激情一区二区三区| 美女www一区二区| 亚洲无线码一区二区三区| 亚洲欧洲精品一区二区三区| 久久久精品tv| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美三片在线视频观看| 91麻豆蜜桃一区二区三区| 成人天堂资源www在线| 精品一二三四区| 日韩成人免费看| 视频一区二区中文字幕| 一区二区三区在线视频播放| 中文字幕中文字幕一区| 国产蜜臀av在线一区二区三区| 欧美一区二区三区在线视频| 欧美亚洲综合另类| 色狠狠av一区二区三区| 91亚洲午夜精品久久久久久| 高清成人免费视频| 成人免费不卡视频| 国产99一区视频免费| 国产综合一区二区| 国产精品一区二区在线观看网站| 久久se精品一区二区| 久久99国产精品麻豆| 日韩一区精品字幕| 蜜桃一区二区三区在线| 美国毛片一区二区三区| 国产一区视频网站| 国产精品综合av一区二区国产馆| 国产麻豆精品95视频| 国产老妇另类xxxxx| 成人99免费视频| 99久久精品国产毛片| 欧美在线免费观看亚洲| 91视频免费播放| 色欧美乱欧美15图片| 在线不卡一区二区| 久久中文字幕电影| 中文字幕视频一区二区三区久| 一区二区三区在线播放| 天天做天天摸天天爽国产一区| 蜜臀av一级做a爰片久久| 国产一区美女在线| 91欧美激情一区二区三区成人| 欧美色网站导航| 欧美videofree性高清杂交| 欧美极品xxx| 亚洲一区二区三区中文字幕在线| 麻豆91精品视频| 99v久久综合狠狠综合久久| 欧美群妇大交群中文字幕| 亚洲精品一区二区精华| 亚洲精品成人在线| 看电影不卡的网站| 色综合久久88色综合天天 | 六月丁香婷婷久久| 成人午夜私人影院| 欧美蜜桃一区二区三区| 国产欧美一区二区在线| 亚洲成人你懂的| 国产精品资源网| 欧美色精品天天在线观看视频| 久久久亚洲欧洲日产国码αv| 自拍偷拍亚洲激情| 黄页网站大全一区二区| 欧美中文字幕一区| 欧美国产禁国产网站cc| 五月天一区二区三区| 不卡av免费在线观看| 日韩美女视频在线| 亚洲伊人色欲综合网| 国产不卡在线视频| 日韩精品一区二区三区四区| 日韩码欧中文字| 国产精品一区二区免费不卡| 欧美色偷偷大香| 亚洲色图欧洲色图婷婷| 国产精品亚洲专一区二区三区 | 大尺度一区二区| 337p亚洲精品色噜噜噜| 亚洲男女毛片无遮挡| 成人高清伦理免费影院在线观看| 日韩欧美国产一区二区三区| 亚洲成人资源网| 91蝌蚪国产九色| 综合久久给合久久狠狠狠97色 | 中文一区二区在线观看| 蜜桃视频一区二区三区| 欧美精品一二三四| 一区二区三区蜜桃| 91美女片黄在线观看| 国产偷国产偷亚洲高清人白洁| 美女视频黄久久| 日韩欧美国产麻豆| 日本亚洲天堂网| 日韩一区二区麻豆国产| 三级欧美在线一区| 欧美一区二区三区婷婷月色| 亚洲电影一区二区| 欧美三级三级三级| av毛片久久久久**hd| 国产另类ts人妖一区二区| 亚洲一区二区成人在线观看| 国产成人精品一区二| 国产婷婷精品av在线| 国产精品亚洲а∨天堂免在线| 国产色产综合色产在线视频| 成人精品高清在线|