fatfs 学习笔记--f_open用法(最新版本)
2017-07-15 09:53
295 查看
FatFs
Date | Revision |
---|---|
May 21, 2017 | FatFs R0.13 (latest release) |
Mar 04, 2017 | FatFs R0.12c |
Sep 04, 2016 | FatFs R0.12b |
Jul 10, 2016 | FatFs R0.12a |
Apr 12, 2016 | FatFs R0.12 |
Sep 05, 2015 | FatFs R0.11a |
Feb 09, 2015 | FatFs R0.11 |
Nov 09, 2014 | FatFs R0.10c |
May 19, 2014 | FatFs R0.10b |
Jan 15, 2014 | FatFs R0.10a |
Oct 02, 2013 | FatFs R0.10 |
Jan 24, 2013 | FatFs R0.09b |
Aug 27, 2012 | FatFs R0.09a |
Sep 06, 2011 | FatFs R0.09 |
Jan 15, 2011 | FatFs R0.08b |
Aug 16, 2010 | FatFs R0.08a |
May 15, 2010 | FatFs R0.08 |
Nov 03, 2009 | FatFs R0.07e |
Jun 21, 2009 | FatFs R0.07c |
Apr 14, 2009 | FatFs R0.07a |
Apr 01, 2008 | FatFs/Tiny-FatFs R0.06 |
Feb 03, 2008 | FatFs/Tiny-FatFs R0.05a |
Aug 25, 2007 | FatFs/Tiny-FatFs R0.05 |
May 05, 2007 | FatFs/Tiny-FatFs R0.04b |
Apr 01, 2007 | FatFs/Tiny-FatFs R0.04a |
Feb 04, 2007 | FatFs/Tiny-FatFs R0.04 |
Dec 11, 2006 | FatFs/Tiny-FatFs R0.03a |
Sep 22, 2006 | FatFs/Tiny-FatFs R0.03 |
Jun 10, 2006 | FatFs/Tiny-FatFs R0.02a |
Jun 01, 2006 | FatFs/Tiny-FatFs R0.02 |
Apr 29, 2006 | FatFs/Tiny-FatFs R0.01 |
f_open
The f_open function opens a file.FRESULT f_open ( FIL* fp, /* [OUT] Pointer to the file object structure */ const TCHAR* path, /* [IN] File name */ BYTE mode /* [IN] Mode flags */ );
Parameters
fpPointer to the blank file object structure.pathPointer to the null-terminated string that specifies the file
name to open or create.
modeMode flags that specifies the type of access and open method for the file. It is specified by a combination of following flags.
Flags | Meaning |
---|---|
FA_READ | Specifies read access to the object. Data can be read from the file. |
FA_WRITE | Specifies write access to the object. Data can be written to the file. Combine with FA_READfor read-write access. |
FA_OPEN_EXISTING | Opens the file. The function fails if the file is not existing. (Default) |
FA_CREATE_NEW | Creates a new file. The function fails with FR_EXIST if the file is existing. |
FA_CREATE_ALWAYS | Creates a new file. If the file is existing, it will be truncated and overwritten. |
FA_OPEN_ALWAYS | Opens the file if it is existing. If not, a new file will be created. |
FA_OPEN_APPEND | Same as FA_OPEN_ALWAYS except the read/write pointer is set end of the file. |
POSIX | FatFs |
---|---|
"r" | FA_READ |
"r+" | FA_READ | FA_WRITE |
"w" | FA_CREATE_ALWAYS | FA_WRITE |
"w+" | FA_CREATE_ALWAYS | FA_WRITE | FA_READ |
"a" | FA_OPEN_APPEND | FA_WRITE |
"a+" | FA_OPEN_APPEND | FA_WRITE | FA_READ |
"x"*1 | FA_CREATE_NEW | FA_WRITE |
"x+"*1 | FA_CREATE_NEW | FA_WRITE | FA_READ |
Return Values
FR_OK, FR_DISK_ERR, FR_INT_ERR, FR_NOT_READY, FR_NO_FILE, FR_NO_PATH, FR_INVALID_NAME, FR_DENIED, FR_EXIST, FR_INVALID_OBJECT,FR_WRITE_PROTECTED, FR_INVALID_DRIVE, FR_NOT_ENABLED, FR_NO_FILESYSTEM, FR_TIMEOUT, FR_LOCKED, FR_NOT_ENOUGH_CORE,FR_TOO_MANY_OPEN_FILES
Description
The f_open function opens a file and creates a fileobject. The file object is used for subsequent read/write operations to the file to identify the file. Open file should be closed with f_close function
after the session of the file access. If any change to the file is made and not closed prior to power down, media removal or re-mount, or the file can be collapsed.
If duplicated file open is needed, read here carefully. However duplicated open of a file with
any write mode flag is always prohibited.
QuickInfo
Always available. Only FA_READ and FA_OPEN_EXISTING aresupported when FF_FS_READONLY == 1.
Example
/* Read a text file and display it */ FATFS FatFs; /* Work area (filesystem object) for logical drive */ int main (void) { FIL fil; /* File object */ char line[100]; /* Line buffer */ FRESULT fr; /* FatFs return code */ /* Register work area to the default drive */ f_mount(&FatFs, "", 0); /* Open a text file */ fr = f_open(&fil, "message.txt", FA_READ); if (fr) return (int)fr; /* Read all lines and display it */ while (f_gets(line, sizeof line, &fil)) { printf(line); } /* Close the file */ f_close(&fil); return 0; }
/* Copy a file "file.bin" on the drive 1 to drive 0 */ int main (void) { FATFS fs[2]; /* Work area (filesystem object) for logical drives */ FIL fsrc, fdst; /* File objects */ BYTE buffer[4096]; /* File copy buffer */ FRESULT fr; /* FatFs function common result code */ UINT br, bw; /* File read/write count */ /* Register work area for each logical drive */ f_mount(&fs[0], "0:", 0); f_mount(&fs[1], "1:", 0); /* Open source file on the drive 1 */ fr = f_open(&fsrc, "1:file.bin", FA_READ); if (fr) return (int)fr; /* Create destination file on the drive 0 */ fr = f_open(&fdst, "0:file.bin", FA_WRITE | FA_CREATE_ALWAYS); if (fr) return (int)fr; /* Copy source to destination */ for (;;) { fr = f_read(&fsrc, buffer, sizeof buffer, &br); /* Read a chunk of source file */ if (fr || br == 0) break; /* error or eof */ fr = f_write(&fdst, buffer, br, &bw); /* Write it to the destination file */ if (fr || bw < br) break; /* error or disk full */ } /* Close open files */ f_close(&fsrc); f_close(&fdst); /* Unregister work area prior to discard it */ f_mount(NULL, "0:", 0); f_mount(NULL, "1:", 0); return (int)fr; }
相关文章推荐
- fatfs 学习笔记--f_write用法(最新版本R0.13)
- python学习笔记之open函数的用法
- 解决”正尝试安装的adobe flash player不是最新版本“的办法(学习笔记)
- fatfs 学习笔记--f_mount用法
- Git学习笔记(三)---版本回退
- 黑马程序员_文件IO流部分疑点和JDK1.7版本后新try-catch处理学习笔记
- Python学习:纠错笔记:详解os.removedirs(path)的正确用法
- Git分布式版本控制系统之学习笔记
- c++学习笔记(4):this的用法
- 版本控制系统-----Git学习笔记
- SmartCVS笔记-从远程仓库更新最新版本的文件以及查看文件的历史版本
- C++学习笔记——sizeof 用法的详细总结及例程
- 【转】Android使用SQLiteOpenHelper对数据库进行版本管理【学习记录】
- 学习笔记(4)~java中Scanner的用法
- [MySQL学习笔记]case when then else end用法
- 【深度学习】笔记1_Ubuntu14.04下caffe环境的搭建,无GPU版本以及python可视化环境的配置
- Linux学习笔记之更新yum安装最新Nginx+Php
- 学习git笔记,git,最强大的版本管理工具,没有之一。
- 先锋机器人学习笔记_1-2 MobileSim MobileEyes用法及demo示例