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

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

?? file.c

?? pl2200 zfc 開發全部文檔,源碼,
?? 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:             /* 從當前位置計算 這里不用break是正確的*/
                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一区二区三区免费野_久草精品视频
色婷婷久久久久swag精品| 69堂亚洲精品首页| 亚洲男人的天堂一区二区| 欧美日韩在线一区二区| 久久国产尿小便嘘嘘| 欧美国产一区二区| 91麻豆成人久久精品二区三区| 亚洲高清免费观看| 国产午夜精品一区二区三区视频 | 国产一区二区三区黄视频 | 欧美丰满嫩嫩电影| 国产黑丝在线一区二区三区| 亚洲欧美另类小说视频| 日韩欧美一区中文| 色综合久久九月婷婷色综合| 蜜臀久久99精品久久久久久9| 国产欧美视频在线观看| 欧美福利视频一区| 成人sese在线| 日本在线不卡一区| 18欧美乱大交hd1984| 日韩免费看的电影| 91免费国产在线| 国产一区在线观看麻豆| 亚洲一二三专区| 亚洲综合激情小说| 91麻豆精品国产91久久久久久久久| 懂色av噜噜一区二区三区av| 亚洲电影中文字幕在线观看| 国产亚洲成aⅴ人片在线观看| 欧美探花视频资源| jlzzjlzz亚洲日本少妇| 日本一道高清亚洲日美韩| 综合色中文字幕| 国产午夜三级一区二区三| 3d成人h动漫网站入口| 在线看国产一区二区| 成人a级免费电影| 日日欢夜夜爽一区| 亚洲电影第三页| 亚洲人快播电影网| 亚洲国产精品国自产拍av| 欧美变态口味重另类| 91精品福利在线一区二区三区| 91影院在线观看| av亚洲精华国产精华| 国产夫妻精品视频| 精品亚洲aⅴ乱码一区二区三区| 亚洲精品自拍动漫在线| 国产精品欧美一级免费| 久久久精品tv| 久久亚洲精精品中文字幕早川悠里| 5月丁香婷婷综合| 欧美日韩中文字幕一区| 欧美在线观看一区| 成人av电影在线| 成人av在线一区二区| 精品国产网站在线观看| 欧美另类videos死尸| 99国产精品国产精品毛片| 成人免费的视频| 丁香五精品蜜臀久久久久99网站| 国产91精品精华液一区二区三区| 韩国精品在线观看| 韩国成人福利片在线播放| 奇米一区二区三区av| 毛片一区二区三区| 麻豆久久久久久| 久久国产精品一区二区| 黄网站免费久久| 国产成人免费在线观看不卡| 精品中文字幕一区二区小辣椒 | 久久久久99精品国产片| 国产色产综合产在线视频| 欧美国产97人人爽人人喊| 精品捆绑美女sm三区| 久久综合久色欧美综合狠狠| 国产亚洲欧美中文| 国产色产综合色产在线视频 | 欧美日韩亚洲综合| 欧美日韩免费高清一区色橹橹 | 久久国产夜色精品鲁鲁99| 九九**精品视频免费播放| 国产成人精品aa毛片| 99re成人精品视频| 欧美做爰猛烈大尺度电影无法无天| 欧美精品在线视频| 日韩精品一区二区三区在线观看 | 欧洲色大大久久| 91精品国产综合久久福利 | www.av亚洲| 欧美色中文字幕| 欧美一二三区在线观看| 国产色91在线| 亚洲免费观看高清完整版在线观看| 婷婷综合在线观看| 狠狠色丁香久久婷婷综| 99精品1区2区| 欧美午夜宅男影院| 久久嫩草精品久久久精品一| 亚洲视频中文字幕| 亚洲r级在线视频| 国产精品中文字幕欧美| 色综合久久久久网| 精品毛片乱码1区2区3区| 亚洲人午夜精品天堂一二香蕉| 七七婷婷婷婷精品国产| 国产成人亚洲综合a∨婷婷图片| 欧美午夜宅男影院| 日本一区免费视频| 五月婷婷综合网| 成人av第一页| 国产调教视频一区| 久久99国产精品久久99| 中文字幕一区二区三区不卡 | 在线视频国内一区二区| 亚洲国产精品成人久久综合一区| 日本在线不卡一区| 欧美日韩国产免费一区二区 | 国产乱一区二区| 日韩午夜中文字幕| 亚洲1区2区3区视频| 在线免费视频一区二区| 亚洲女厕所小便bbb| 成人一级黄色片| 欧美激情综合五月色丁香小说| 国产一区亚洲一区| 精品国产一区a| 久久99精品国产.久久久久久| 日韩视频在线观看一区二区| 日韩精品乱码免费| 欧美区视频在线观看| 五月开心婷婷久久| 欧美日韩综合在线| 午夜免费欧美电影| 91精品啪在线观看国产60岁| 日本一区中文字幕 | 久久综合精品国产一区二区三区| 日韩在线卡一卡二| 欧美另类z0zxhd电影| 日本人妖一区二区| 日韩视频永久免费| 国产自产v一区二区三区c| 亚洲精品在线三区| 国产成人综合精品三级| 国产女同性恋一区二区| 成人a级免费电影| 自拍视频在线观看一区二区| 色8久久精品久久久久久蜜| 一区二区三区波多野结衣在线观看 | 国产欧美中文在线| 成人精品一区二区三区四区 | 国产一区二区三区免费播放| www激情久久| 成人黄色免费短视频| 亚洲欧美偷拍卡通变态| 欧美亚洲动漫精品| 日本中文字幕一区二区有限公司| 精品国产精品网麻豆系列 | 欧美区在线观看| 卡一卡二国产精品| 欧美国产乱子伦| 欧洲一区二区三区在线| 美女精品一区二区| 亚洲国产电影在线观看| 91福利国产精品| 麻豆精品视频在线观看| 日本一区二区三区免费乱视频| 99久久综合国产精品| 午夜不卡av免费| 久久久久国色av免费看影院| 在线视频综合导航| 久久er精品视频| 最新国产精品久久精品| 777久久久精品| 成人综合婷婷国产精品久久| 亚洲高清不卡在线| 欧美精品一区二区久久婷婷| 99精品热视频| 麻豆成人久久精品二区三区红| 九九九精品视频| 亚洲免费在线播放| 精品国产乱码久久久久久浪潮| 一本色道亚洲精品aⅴ| 久久精品二区亚洲w码| 亚洲欧美影音先锋| 日韩视频永久免费| 日本精品免费观看高清观看| 国产一区二区三区av电影 | 日韩经典中文字幕一区| 国产人久久人人人人爽| 欧美视频精品在线| 成人午夜视频免费看| 青青草成人在线观看| 亚洲欧美一区二区久久| 国产欧美在线观看一区| 欧美一区二区私人影院日本| 91在线视频18| 国产自产高清不卡| 日本女优在线视频一区二区|