FatFS f open 函式詳解

2021-07-11 07:58:44 字數 1898 閱讀 2270

最新版 fatfs f_open詳解

時間 2014-03-21 16:21:21  程式設計師玩耍的小窩

原文  

主題 技術

f_open

建立/開啟乙個用於訪問檔案的檔案物件

fresult f_open (

fil* fileobject,         /* 空白檔案物件結構指標 */

const xchar* filename,   /* 檔名指標 */

byte modeflags           /* 模式標誌 */

);引數

fileobject

將被建立的檔案物件結構的指標。

filename

null結尾的字串指標,該字串指定了將被建立或開啟的檔名。

modeflags

指定檔案的訪問型別和開啟方法。它是由下列標誌的乙個組合指定的。

模式 描述

fa_read 指定讀訪問物件。可以從檔案中讀取資料。

與fa_write結合可以進行讀寫訪問。

fa_write 指定寫訪問物件。可以向檔案中寫入資料。

與fa_read結合可以進行讀寫訪問。

fa_open_existing 開啟檔案。如果檔案不存在,則開啟失敗。(預設)

fa_open_always 如果檔案存在,則開啟;否則,建立乙個新檔案。

fa_create_new 建立乙個新檔案。如果檔案已存在,則建立失敗。

fa_create_always 建立乙個新檔案。如果檔案已存在,則它將被截斷並覆蓋。

注意:當 _fs_readonly == 1 時,模式標誌 fa_write, fa_create_always, fa_create_new, fa_open_always 是無效的。

返回值fr_ok (0)

函式成功,該檔案物件有效。

fr_no_file

找不到該檔案。

fr_no_path

找不到該路徑。

fr_invalid_name

檔名無效。

fr_invalid_drive

驅動器號無效。

fr_exist

該檔案已存在。

fr_denied

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

以寫模式開啟乙個唯讀檔案。

由於存在乙個同名的唯讀檔案或目錄,而導致檔案無法被建立。

由於目錄表或磁碟已滿,而導致檔案無法被建立。

fr_not_ready

由於驅動器中沒有儲存介質或任何其他原因,而導致磁碟驅動器無法工作。

fr_write_protected

在儲存介質被寫保護的情況下,以寫模式開啟或建立檔案物件。

fr_disk_err

由於底層磁碟i/o介面函式中的乙個錯誤,而導致該函式失敗。

fr_int_err

由於乙個錯誤的fat結構或乙個內部錯誤,而導致該函式失敗。

fr_not_enabled

邏輯驅動器沒有工作區。

fr_no_filesystem

磁碟上沒有有效地fat卷。

描述如果函式成功,則建立乙個檔案物件。該檔案物件被後續的讀/寫函式用來訪問檔案。如果想要關閉乙個開啟的檔案物件,則使用f_close函式。如果不關閉修改後的檔案,那麼檔案可能會崩潰。

在使用任何檔案函式之前,必須使用f_mount函式為驅動器註冊乙個工作區。只有這樣,其他檔案函式才能正常工作。

例子(檔案拷貝)

void main (void)

/* 關閉開啟的檔案 */

f_close(&fsrc);

f_close(&fdst);

/* 登出工作區(在廢棄前) */

f_mount(0, null);

f_mount(1, null);

}

mod函式詳解

我們知道,mod函式是乙個求餘函式,其格式為 mod nexp1,nexp2 即是兩個數值表示式作除法運算後的餘數。那麼 兩個同號整數求餘與你所知的兩個正數求餘完全一樣 即兩個負整數與兩個正整數的演算法一樣 一 兩個異號整數求餘 1.函式值符號規律 餘數的符號 mod 負,正 正 mod 正,負 負...

CDC PatBlt 函式詳解。

函式功能 該函式使用當前選入指定裝置環境中的刷子繪製給定的矩形區域。通過使用給出的光柵操作來對該刷子的顏色和表面顏色進行組合。函式原型 bool patblt hdc hdc,int nxleft,int nyleft,int nwidth,int nheight,dword dwrop 引數 hd...

php header 函式詳解

一 作用 php只是以http協議將html文件的標頭送到瀏覽器,告訴瀏覽器具體怎麼處理這個頁面,至於傳送的內容則需要熟悉一下http協議了,與php無關了,可參照http www.w3.org protocols rfc2616 rfc2616。傳統的標頭一定包含下面三種標頭之一,並只能出現一次。...