小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

FatFS f

 goodwangLib 2018-05-30
                  最新版 FatFS f_open詳解
時間 2014-03-21 16:21:21  程序員玩耍的小窩
原文  http://www./post-202.html
主題 技術(shù)
作者:fly發(fā)布于:2014-3-21 16:23 分類:嵌入式


f_open


創(chuàng)建/打開一個用于訪問文件的文件對象


FRESULT f_open (


 FIL* FileObject,         /* 空白文件對象結(jié)構(gòu)指針 */


 const XCHAR* FileName,   /* 文件名指針 */


 BYTE ModeFlags           /* 模式標(biāo)志 */


);


參數(shù)


FileObject


將被創(chuàng)建的文件對象結(jié)構(gòu)的指針。


FileName


NULL結(jié)尾的字符串指針,該字符串指定了將被創(chuàng)建或打開的文件名。


ModeFlags


指定文件的訪問類型和打開方法。它是由下列標(biāo)志的一個組合指定的。


模式 描述


FA_READ 指定讀訪問對象。可以從文件中讀取數(shù)據(jù)。


與FA_WRITE結(jié)合可以進(jìn)行讀寫訪問。


FA_WRITE 指定寫訪問對象。可以向文件中寫入數(shù)據(jù)。


與FA_READ結(jié)合可以進(jìn)行讀寫訪問。


FA_OPEN_EXISTING 打開文件。如果文件不存在,則打開失敗。(默認(rèn))


FA_OPEN_ALWAYS 如果文件存在,則打開;否則,創(chuàng)建一個新文件。


FA_CREATE_NEW 創(chuàng)建一個新文件。如果文件已存在,則創(chuàng)建失敗。


FA_CREATE_ALWAYS 創(chuàng)建一個新文件。如果文件已存在,則它將被截斷并覆蓋。


注意:當(dāng) _FS_READONLY == 1 時,模式標(biāo)志 FA_WRITE, FA_CREATE_ALWAYS, FA_CREATE_NEW, FA_OPEN_ALWAYS 是無效的。


返回值


FR_OK (0)


函數(shù)成功,該文件對象有效。


FR_NO_FILE


找不到該文件。


FR_NO_PATH


找不到該路徑。


FR_INVALID_NAME


文件名無效。


FR_INVALID_DRIVE


驅(qū)動器號無效。


FR_EXIST


該文件已存在。


FR_DENIED


由于下列原因,所需的訪問被拒絕:


以寫模式打開一個只讀文件。


由于存在一個同名的只讀文件或目錄,而導(dǎo)致文件無法被創(chuàng)建。


由于目錄表或磁盤已滿,而導(dǎo)致文件無法被創(chuàng)建。


FR_NOT_READY


由于驅(qū)動器中沒有存儲介質(zhì)或任何其他原因,而導(dǎo)致磁盤驅(qū)動器無法工作。


FR_WRITE_PROTECTED


在存儲介質(zhì)被寫保護(hù)的情況下,以寫模式打開或創(chuàng)建文件對象。


FR_DISK_ERR


由于底層磁盤I/O接口函數(shù)中的一個錯誤,而導(dǎo)致該函數(shù)失敗。


FR_INT_ERR


由于一個錯誤的FAT結(jié)構(gòu)或一個內(nèi)部錯誤,而導(dǎo)致該函數(shù)失敗。


FR_NOT_ENABLED


邏輯驅(qū)動器沒有工作區(qū)。


FR_NO_FILESYSTEM


磁盤上沒有有效地FAT卷。


描述


如果函數(shù)成功,則創(chuàng)建一個文件對象。該文件對象被后續(xù)的讀/寫函數(shù)用來訪問文件。如果想要關(guān)閉一個打開的文件對象,則使用f_close函數(shù)。如果不關(guān)閉修改后的文件,那么文件可能會崩潰。


在使用任何文件函數(shù)之前,必須使用f_mount函數(shù)為驅(qū)動器注冊一個工作區(qū)。只有這樣,其他文件函數(shù)才能正常工作。


例子(文件拷貝)


void main (void)


{


   FATFS fs[2];         /* 邏輯驅(qū)動器的工作區(qū)(文件系統(tǒng)對象) */


   FIL fsrc, fdst;      /* 文件對象 */


   BYTE buffer[4096];   /* 文件拷貝緩沖區(qū) */


   FRESULT res;         /* FatFs 函數(shù)公共結(jié)果代碼 */


   UINT br, bw;         /* 文件讀/寫字節(jié)計數(shù) */


   /* 為邏輯驅(qū)動器注冊工作區(qū) */


   f_mount(0, &fs[0]);


   f_mount(1, &fs[1]);


   /* 打開驅(qū)動器 1 上的源文件 */


   res = f_open(&fsrc, "1:srcfile.dat", FA_OPEN_EXISTING | FA_READ);


   if (res) die(res);


   /* 在驅(qū)動器 0 上創(chuàng)建目標(biāo)文件 */


   res = f_open(&fdst, "0:dstfile.dat", FA_CREATE_ALWAYS | FA_WRITE);


   if (res) die(res);


   /* 拷貝源文件到目標(biāo)文件 */


   for (;;) {


       res = f_read(&fsrc, buffer, sizeof(buffer), &br);


       if (res || br == 0) break;   /* 文件結(jié)束錯誤 */


       res = f_write(&fdst, buffer, br, &bw);


       if (res || bw < br) break;   /* 磁盤滿錯誤 */


   }


   /* 關(guān)閉打開的文件 */


   f_close(&fsrc);


   f_close(&fdst);


   /* 注銷工作區(qū)(在廢棄前) */


   f_mount(0, NULL);


   f_mount(1, NULL);


}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多