fatfs v0.15a November 22, 2024:
- Fixed a complie error when FF_FS_LOCK != 0. - Fixed a potential issue when work FatFs concurrency with FF_FS_REENTRANT, FF_VOLUMES >= 2 and FF_FS_LOCK > 0. - Made f_setlabel() accept a volume label in Unix style volume ID when FF_STR_VOLUME_ID == 2. - Made FatFs update PercInUse field in exFAT VBR. (A preceding f_getfree() is needed for the accuracy)
This commit is contained in:
1 parent
ba3f5b7f87
commit
47e601681a
58 files changed
+671
-666
No files matched your search
@@ -3,8 +3,6 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<link rel="up" title="FatFs" href="../00index_e.html">
|
||||
<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/lseek.html">
|
||||
<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
|
||||
<title>FatFs - f_expand</title>
|
||||
</head>
|
||||
@@ -28,7 +26,7 @@ FRESULT f_expand (
|
||||
<h4>Parameters</h4>
|
||||
<dl class="par">
|
||||
<dt>fp</dt>
|
||||
<dd>Pointer to the open file object.</dd>
|
||||
<dd>Pointer to the open file object. If a null pointer is given, the function fails with <tt>FR_INVALID_OBJECT</tt>.</dd>
|
||||
<dt>fsz</dt>
|
||||
<dd>Number of bytes in size to prepare or allocate for the file. The data type <tt>FSIZE_t</tt> is an alias of either <tt>DWORD</tt>(32-bit) or <tt>QWORD</tt>(64-bit) depends on the configuration option <tt>FF_FS_EXFAT</tt>.</dd>
|
||||
<dt>opt</dt>
|
||||
@@ -61,7 +59,7 @@ FRESULT f_expand (
|
||||
</ul>
|
||||
<p>When <tt class="arg">opt</tt> is 0, the function finds a contiguous data area and set it as suggested point for next allocation. The subsequent cluster allocation begins at top of the contiguous area found by this function. Thus the file allocation is guaranteed be contiguous and without allocation delay until the file size reaches this size unless any other changes to the volume is performed.</p>
|
||||
<p>The contiguous file has an advantage for time-critical read/write operations. It eliminates some overheads in the filesystem and the storage device caused by random access for fragmented file.</p>
|
||||
<p>Also the contiguous file can be easily accessed directly via low-level disk functions. However, this is not recommended in consideration of portability and future compatibility. If the file has not been confirmed be contiguous, use <a href="../res/app5.c">this function</a> to examine if the file is contiguous or not.</p>
|
||||
<p>The contiguou files can easily be accessed via low-level disk functions. However, this is not recommended in consideration of portability and future compatibility. If the file has not been confirmed be contiguous, use <a href="../res/app5.c">this function</a> to examine if the file is contiguous or not.</p>
|
||||
</div>
|
||||
|
||||
<div class="para comp">
|
||||
@@ -76,16 +74,16 @@ FRESULT f_expand (
|
||||
<span class="c">/* Creating a contiguous file */</span>
|
||||
|
||||
<span class="c">/* Create a new file */</span>
|
||||
res = f_open(fp = malloc(sizeof (FIL)), "file.dat", FA_WRITE|FA_CREATE_ALWAYS);
|
||||
res = <em>f_open</em>(fp = malloc(sizeof (FIL)), "file.dat", FA_WRITE|FA_CREATE_ALWAYS);
|
||||
if (res) { <span class="c">/* Check if the file has been opened */</span>
|
||||
free(fp);
|
||||
die("Failed to open the file.");
|
||||
}
|
||||
|
||||
<span class="c">/* Alloacte a 100 MiB of contiguous area to the file */</span>
|
||||
<span class="c">/* Allocate a 100 MiB of contiguous area to the file */</span>
|
||||
res = <em>f_expand</em>(fp, 104857600, 1);
|
||||
if (res) { <span class="c">/* Check if the file has been expanded */</span>
|
||||
f_close(fp);
|
||||
<em>f_close</em>(fp);
|
||||
free(fp);
|
||||
die("Failed to allocate contiguous area.");
|
||||
}
|
||||
@@ -101,7 +99,7 @@ FRESULT f_expand (
|
||||
lba = fp->obj.fs->database + fp->obj.fs->csize * (fp->obj.sclust - 2);
|
||||
|
||||
<span class="c">/* Write 2048 sectors from top of the file at a time */</span>
|
||||
res = disk_write(drv, buffer, lba, 2048);
|
||||
res = <em>disk_write</em>(drv, data, lba, 2048);
|
||||
|
||||
</pre>
|
||||
</div>
|
||||
@@ -112,6 +110,7 @@ FRESULT f_expand (
|
||||
<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
|
||||
</div>
|
||||
|
||||
|
||||
<p class="foot"><a href="../00index_e.html">Return</a></p>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user