FatFs R0.15, released November 6, 2022

This commit is contained in:
Christopher Williams
2022-11-08 17:31:20 -07:00
parent ab8c36b6e2
commit 04d5545d67
33 changed files with 1280 additions and 896 deletions
+23 -22
View File
@@ -50,10 +50,10 @@ int f_printf (
%[flag][width][precision][size]type
</pre>
<dl>
<dt>flag</dt><dd>Padding options. A <tt>-</tt> specifies left-aligned. A <tt>0</tt> specifies zero padded. The default setting is in right-aligned and space padded.</dd>
<dt>width</dt><dd>Minimum width of the field, <tt>1-99</tt> or <tt>*</tt>. If the width of generated string is less than the specified value, rest field is padded with spaces or zeros. An <tt>*</tt> specifies the value comes from an argument in int type.</dd>
<dt>precision</dt><dd>Specifies number of fractional digits or maximum width of string, <tt>.0-.99</tt> or <tt>.*</tt>. If number is omitted, it will be same as <tt>.0</tt>. Default setting is 6 for number and no limit for string.</dd>
<dt>size</dt><dd>Specifies size of integer argument, <tt>l</tt>(long) and <tt>ll</tt>(long long). If <tt>sizeof (long) == sizeof (int)</tt> is true (this is typical of 32-bit systems), prefix <tt>l</tt> can be omitted for long integer argument. The default size is int for integer arrument and floating point argument is always assumed double.</dd>
<dt>flag</dt><dd>Padding option. A <tt>-</tt> specifies left-aligned. A <tt>0</tt> specifies zero padded. The default setting is in right-aligned and space padded.</dd>
<dt>width</dt><dd>Minimum width of the field, <tt>1-99</tt> or <tt>*</tt>. If the width of generated string is less than the minimum width, rest field is padded with spaces or zeros. An <tt>*</tt> specifies the value comes from an argument in int type. The default setting is zero.</dd>
<dt>precision</dt><dd>Specifies number of fractional digits or maximum width of string, <tt>.0-.99</tt> or <tt>.*</tt>. If the number is omitted, it is same as <tt>.0</tt>. Default setting is 6 for number and no limit for string.</dd>
<dt>size</dt><dd>Specifies size of integer argument, <tt>l</tt>(long) and <tt>ll</tt>(long long). If <tt>sizeof (long) == sizeof (int)</tt> is true (this is typical of 32-bit systems), prefix <tt>l</tt> can be omitted for long integer argument. The default size is int for integer argument and floating point argument is always assumed double as the default argument promotion.</dd>
<dt>type</dt><dd>Specifies type of the output format and the argument as shown below. The length of generated string is in assumtion of int is 32-bit.
<table class="lst1">
<tr><th>Type</th><th>Format</th><th>Argument</th><th>Length</th></tr>
@@ -70,6 +70,7 @@ int f_printf (
</dd>
</dl>
<p>When FatFs is configured for Unicode API (<tt><a href="config.html#lfn_unicode">FF_LFN_UNICODE</a> &gt;= 1</tt>), character encoding on the string fuctions, <tt>f_putc</tt>, <tt>f_puts</tt>, <tt>f_printf</tt> and <tt>f_gets</tt> function, is also switched to Unicode. The Unicode characters in multiple encoding unit, such as surrogate pair and multi-byte sequence, should not be divided into two function calls, or the character will be lost. The character encoding <em>on the file</em> to be written via this function is selected by <tt><a href="config.html#strf_encode">FF_STRF_ENCODE</a></tt>. The characters with wrong encoding or invalid for the output encoding will be lost.</p>
<p>If <tt>sprintf</tt> is used in the project and code conversion is not needed, <tt>f_write</tt> with <tt>sprintf</tt> will be efficient in code size and performance rather than <tt>f_printf</tt>.</p>
</div>
@@ -82,24 +83,24 @@ int f_printf (
<div class="para use">
<h4>Example</h4>
<pre>
<em>f_printf</em>("%d", 1234); <span class="c">/* "1234" */</span>
<em>f_printf</em>("%6d,%3d%%", -200, 5); <span class="c">/* " -200, 5%" */</span>
<em>f_printf</em>("%-6u", 100); <span class="c">/* "100 " */</span>
<em>f_printf</em>("%ld", 12345678); <span class="c">/* "12345678" */</span>
<em>f_printf</em>("%llu", 0x100000000); <span class="c">/* "4294967296" (<a href="config.html#print_lli">FF_PRINT_LLI</a>) */</span>
<em>f_printf</em>("%lld", -1LL); <span class="c">/* "-1" (FF_PRINT_LLI) */</span>
<em>f_printf</em>("%04x", 0xA3); <span class="c">/* "00a3" */</span>
<em>f_printf</em>("%08lX", 0x123ABC); <span class="c">/* "00123ABC" */</span>
<em>f_printf</em>("%016b", 0x550F); <span class="c">/* "0101010100001111" */</span>
<em>f_printf</em>("%*d", 6, 100); <span class="c">/* " 100" */</span>
<em>f_printf</em>("%s", "abcdefg"); <span class="c">/* "abcdefg" */</span>
<em>f_printf</em>("%5s", "abc"); <span class="c">/* " abc" */</span>
<em>f_printf</em>("%-5s", "abc"); <span class="c">/* "abc " */</span>
<em>f_printf</em>("%.5s", "abcdefg"); <span class="c">/* "abcde" */</span>
<em>f_printf</em>("%-5.2s", "abcdefg"); <span class="c">/* "ab " */</span>
<em>f_printf</em>("%c", 'a'); <span class="c">/* "a" */</span>
<em>f_printf</em>("%12f", 10.0); <span class="c">/* " 10.000000" (<a href="config.html#print_fp">FF_PRINT_FLOAT</a>) */</span>
<em>f_printf</em>("%.4E", 123.45678); <span class="c">/* "1.2346E+02" (FF_PRINT_FLOAT) */</span>
<em>f_printf</em>(fp, "%d", 1234); <span class="c">/* "1234" */</span>
<em>f_printf</em>(fp, "%6d,%3d%%", -200, 5); <span class="c">/* " -200, 5%" */</span>
<em>f_printf</em>(fp, "%-6u", 100); <span class="c">/* "100 " */</span>
<em>f_printf</em>(fp, "%ld", 12345678); <span class="c">/* "12345678" */</span>
<em>f_printf</em>(fp, "%llu", 0x100000000); <span class="c">/* "4294967296" (<a href="config.html#print_lli">FF_PRINT_LLI</a>) */</span>
<em>f_printf</em>(fp, "%lld", -1LL); <span class="c">/* "-1" (FF_PRINT_LLI) */</span>
<em>f_printf</em>(fp, "%04x", 0xA3); <span class="c">/* "00a3" */</span>
<em>f_printf</em>(fp, "%08lX", 0x123ABC); <span class="c">/* "00123ABC" */</span>
<em>f_printf</em>(fp, "%016b", 0x550F); <span class="c">/* "0101010100001111" */</span>
<em>f_printf</em>(fp, "%*d", 6, 100); <span class="c">/* " 100" */</span>
<em>f_printf</em>(fp, "%s", "abcdefg"); <span class="c">/* "abcdefg" */</span>
<em>f_printf</em>(fp, "%5s", "abc"); <span class="c">/* " abc" */</span>
<em>f_printf</em>(fp, "%-5s", "abc"); <span class="c">/* "abc " */</span>
<em>f_printf</em>(fp, "%.5s", "abcdefg"); <span class="c">/* "abcde" */</span>
<em>f_printf</em>(fp, "%-5.2s", "abcdefg"); <span class="c">/* "ab " */</span>
<em>f_printf</em>(fp, "%c", 'a'); <span class="c">/* "a" */</span>
<em>f_printf</em>(fp, "%12f", 10.0); <span class="c">/* " 10.000000" (<a href="config.html#print_fp">FF_PRINT_FLOAT</a>) */</span>
<em>f_printf</em>(fp, "%.4E", 123.45678); <span class="c">/* "1.2346E+02" (FF_PRINT_FLOAT) */</span>
</pre>
</div>