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

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

?? file.c

?? zlg_fs
?? C
?? 第 1 頁 / 共 3 頁
字號:
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 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;
}

/*********************************************************************************************************
** 函數名稱: FilePutCh
** 功能描述: 寫一個字節到文件
**
** 輸 入: Ch:要寫的數據
**        Handle:文件句柄
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明 
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 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)       /* 對應的打開文件信息表是否已使用 */
    {
        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); 
                
                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;
                        }
                    }
                }
                
                /* 計算數據所在扇區 */
                i = j / DiskInfo->BytsPerSec;
                j = j % DiskInfo->BytsPerSec;
                SecIndex = (fp->Clus - 2) * DiskInfo->SecPerClus + DiskInfo->DataStartSec + i;
                Rt = SECTOR_READ_ERR;
                
                /* 調整打開文件信息表 */
                fp->Offset++;
                if (fp->Offset > fp->FileSize)
                {
                    fp->FileSize = fp->Offset;
                }

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

/*********************************************************************************************************
** 函數名稱: FileWrite
** 功能描述: 寫文件
**
** 輸 入: Buf:要寫的數據
**        Size:要寫的字節數
**        Handle:文件句柄
** 輸 出: 實際寫的字節數
**         
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 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;
}

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

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

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

/*********************************************************************************************************
** 函數名稱: FileSeek
** 功能描述: 移動文件讀\寫位置
**
** 輸 入: Handle:文件句柄
**        offset:移動偏移量
**        Whence:移動模式SEEK_SET:從文件頭計算SEEK_CUR:從當前位置計算SEEK_END:從文件尾計算
** 輸 出: 無
**         
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2003年6月5日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 2004年4月10日
**------------------------------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 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)                            /* 對應的打開文件信息表是否已使用 */
    {
        Rt = RETURN_OK;
        switch (Whence)
        {
            case SEEK_END:                          /* 從文件尾計算 */
                fp->Offset = fp->FileSize - offset;
                offset = -offset;
                break;
            case SEEK_SET:
                fp->Offset = offset;
                break;
            case SEEK_CUR:                          /* 從當前位置計算 */
                i = fp->Offset + offset;
                break;
            default:
                Rt = PARAMETER_ERR;
                break;
        }
        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
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人网页在线观看| 国产乱人伦偷精品视频免下载 | 亚洲精品美国一| 亚洲一区二区在线视频| 亚洲欧美在线视频观看| 国产精品免费免费| 1000部国产精品成人观看| 国产亚洲一区二区在线观看| 国产视频911| 亚洲欧洲av色图| 亚洲国产综合色| 看电影不卡的网站| 国产成人亚洲综合a∨猫咪| 成人免费视频国产在线观看| 成人av资源网站| 在线看不卡av| 日韩免费观看高清完整版| 精品国产91乱码一区二区三区 | 成人福利视频在线| 日本韩国欧美一区| 911国产精品| 久久影音资源网| 最新不卡av在线| 奇米777欧美一区二区| 国产成人综合亚洲网站| 不卡电影一区二区三区| 欧美日韩久久久| 91在线精品一区二区| 99re热视频这里只精品| 色婷婷综合久久久久中文一区二区 | 欧美日韩激情一区二区三区| 欧美一二三区在线| 国产精品水嫩水嫩| 亚洲一区二区三区中文字幕在线 | 欧美成人综合网站| 亚洲三级在线看| 久久福利视频一区二区| 91亚洲午夜精品久久久久久| 欧美一二三区精品| 亚洲色图欧美偷拍| 日本视频一区二区三区| 成人白浆超碰人人人人| 精品少妇一区二区三区在线视频| 日本一区二区三区免费乱视频 | 欧美成人猛片aaaaaaa| 亚洲视频1区2区| 国产河南妇女毛片精品久久久| 一本久久精品一区二区| 久久影院午夜片一区| 婷婷夜色潮精品综合在线| 成人一区二区视频| 精品精品欲导航| 亚洲午夜在线视频| 91网站最新网址| 国产日韩亚洲欧美综合| 日本伊人精品一区二区三区观看方式| 99在线热播精品免费| 日韩一区二区精品| 日日摸夜夜添夜夜添精品视频 | 久久久久久久综合色一本| 亚洲电影在线播放| 色婷婷激情一区二区三区| 亚洲国产电影在线观看| 国产乱码精品一区二区三区av | 成人综合婷婷国产精品久久 | 精品久久久久久亚洲综合网| 亚洲成人av一区二区三区| 91年精品国产| 亚洲欧美一区二区三区孕妇| 成人免费视频app| 国产欧美一区二区三区沐欲| 国产一区在线不卡| 久久综合精品国产一区二区三区| 日韩和的一区二区| 91精品国产综合久久久久久久久久 | 自拍偷拍欧美精品| 色www精品视频在线观看| 亚洲免费观看高清| 欧美日韩免费观看一区三区| 一区二区三区久久久| 欧美亚洲尤物久久| 丝袜诱惑亚洲看片| 日韩欧美一区二区免费| 久久精品国产久精国产| 精品国产乱码久久| 国产精一品亚洲二区在线视频| 国产午夜久久久久| 91视频免费看| 性做久久久久久久久| 91精品国产丝袜白色高跟鞋| 久久福利视频一区二区| 日本一区二区免费在线| 在线观看日韩国产| 日韩**一区毛片| 精品剧情v国产在线观看在线| 国产综合色视频| 亚洲色图都市小说| 欧美久久一二三四区| 国产一区二区在线视频| 最近中文字幕一区二区三区| 欧美日韩不卡一区二区| 国产一区二区三区久久久| 国产精品成人免费在线| 欧美精品丝袜中出| 成人免费视频免费观看| 亚洲午夜av在线| 国产视频一区在线观看| 欧美中文字幕不卡| 国产精品系列在线观看| 亚洲成人tv网| 国产精品视频免费看| 欧美电影影音先锋| 粉嫩av一区二区三区| 午夜免费久久看| 国产精品国产三级国产aⅴ无密码| 欧美美女一区二区在线观看| 国产在线不卡一卡二卡三卡四卡| 一区二区三区免费在线观看| 久久久久99精品国产片| 在线电影国产精品| 99re在线视频这里只有精品| 另类欧美日韩国产在线| 亚洲狠狠丁香婷婷综合久久久| 日韩欧美一级特黄在线播放| 欧美性色欧美a在线播放| 国产一二三精品| 日本sm残虐另类| 亚洲永久精品国产| 国产精品午夜在线| 欧美变态凌虐bdsm| 欧美猛男超大videosgay| av电影一区二区| 国产一区在线看| 久久不见久久见中文字幕免费| 午夜国产精品一区| 亚洲激情第一区| 亚洲美女在线一区| 中文字幕在线不卡| 国产日韩视频一区二区三区| 精品国产91久久久久久久妲己| 欧美精品xxxxbbbb| 欧美二区三区的天堂| 欧美日韩亚洲丝袜制服| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产不卡视频在线播放| 国产一区二区伦理片| 九一久久久久久| 国内精品视频666| 精品一区二区在线观看| 久久电影网电视剧免费观看| 三级成人在线视频| 久久国产人妖系列| 久久国产精品一区二区| 国内不卡的二区三区中文字幕 | 久久综合九色综合久久久精品综合| 欧美精品视频www在线观看 | 久久久久久久电影| 久久久国产午夜精品| 国产欧美va欧美不卡在线| 国产丝袜在线精品| 一色桃子久久精品亚洲| 亚洲人午夜精品天堂一二香蕉| 亚洲免费观看高清完整| 一区二区三区四区高清精品免费观看 | 成人午夜精品一区二区三区| 成年人国产精品| 日本二三区不卡| 678五月天丁香亚洲综合网| 欧美电影免费观看高清完整版| 久久午夜免费电影| 亚洲欧美日韩在线| 亚洲电影视频在线| 国产一区二区三区在线观看免费 | 亚洲国产视频一区| 日本成人在线电影网| 国产一区二区三区不卡在线观看| 国产精品白丝av| 色婷婷综合久久久中文字幕| 欧美午夜宅男影院| 26uuu国产日韩综合| 中文字幕欧美激情一区| 亚洲自拍另类综合| 老司机精品视频一区二区三区| 成人高清视频免费观看| 欧美人与性动xxxx| 亚洲国产经典视频| 偷拍一区二区三区四区| 成人性生交大片免费看视频在线| 色八戒一区二区三区| 久久久噜噜噜久噜久久综合| 一区二区三区中文免费| 国产资源在线一区| 欧美色图片你懂的| 国产色产综合色产在线视频| 五月综合激情日本mⅴ| 成人爱爱电影网址| 26uuu精品一区二区| 亚洲v日本v欧美v久久精品| 成人精品国产一区二区4080| 91精品国产入口|