1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8">
5 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
6 <link rel=
"up" title=
"FatFs" href=
"../00index_e.html">
7 <link rel=
"alternate" hreflang=
"ja" title=
"Japanese" href=
"../ja/printf.html">
8 <link rel=
"stylesheet" href=
"../css_e.css" type=
"text/css" media=
"screen" title=
"ELM Default">
9 <title>FatFs - f_printf
</title>
14 <div class=
"para func">
16 <p>The f_printf function writes formatted string to the file.
</p>
19 FIL*
<span class=
"arg">fp
</span>,
<span class=
"c">/* [IN] File object */
</span>
20 const TCHAR*
<span class=
"arg">fmt
</span>,
<span class=
"c">/* [IN] Format stirng */
</span>
26 <div class=
"para arg">
30 <dd>Pointer to the open file object structure.
</dd>
32 <dd>Pointer to the null
<tt>'\
0'
</tt> terminated format string. The terminator character will not be output.
</dd>
34 <dd>Optional arguments...
</dd>
40 <div class=
"para ret">
41 <h4>Return Values
</h4>
42 <p>When the string was written successfuly, it returns number of character encoding units written to the file. When the function failed due to disk full or any error, an
<tt>EOF (-
1)
</tt> will be returned.
</p>
46 <div class=
"para desc">
48 <p>The format control directive is a sub-set of standard library shown as follows:
</p>
53 <dt>flag
</dt><dd>Padding options. A
<tt>-
</tt> specifies left justified. A
<tt>0</tt> specifies zero padded.
</dd>
54 <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 white spaces or zeros. An
<tt>*
</tt> specifies the value comes from an argument in int type.
</dd>
55 <dt>type
</dt><dd><tt>c s d u o x b
</tt> and prefix
<tt>l
</tt> specify type of the argument, character, string, signed integer in decimal, unsigned integer in decimal, unsigned integer in octal, unsigned integer in hexdecimal and unsigned integer in binary respectively. If
<tt>sizeof (long)
</tt> is greater than
<tt>sizeof (int)
</tt> (this is typical of
8/
16-bit systems), a prefix
<tt>l
</tt> needs to be explicitly specified for long integer argument. These characters except for
<tt>x
</tt> are case insensitive.
</dd>
57 <p>When FatFs is configured for Unicode API (
<tt><a href=
"config.html#lfn_unicode">FF_LFN_UNICODE
</a> >=
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>
61 <div class=
"para comp">
63 <p>This is a wrapper function of
<a href=
"write.html"><tt>f_write
</tt></a> function. Available when
<tt><a href=
"config.html#fs_readonly">FF_FS_READONLY
</a> ==
0</tt> and
<tt><a href=
"config.html#use_strfunc">FF_USE_STRFUNC
</a> >=
1</tt>. When
<tt>FF_USE_STRFUNC ==
2</tt>,
<tt>'\n'
</tt>s in the generated string are written as
<tt>'\r'+'\n'
</tt> each.
</p>
67 <div class=
"para use">
70 <em>f_printf
</em>(
&fil,
"%d",
1234);
<span class=
"c">/*
"1234" */
</span>
71 <em>f_printf
</em>(
&fil,
"%6d,%3d%%", -
200,
5);
<span class=
"c">/*
" -200, 5%" */
</span>
72 <em>f_printf
</em>(
&fil,
"%ld",
12345L);
<span class=
"c">/*
"12345" */
</span>
73 <em>f_printf
</em>(
&fil,
"%06d",
25);
<span class=
"c">/*
"000025" */
</span>
74 <em>f_printf
</em>(
&fil,
"%06d", -
25);
<span class=
"c">/*
"000-25" */
</span>
75 <em>f_printf
</em>(
&fil,
"%*d",
5,
100);
<span class=
"c">/*
" 100" */
</span>
76 <em>f_printf
</em>(
&fil,
"%-6d",
25);
<span class=
"c">/*
"25 " */
</span>
77 <em>f_printf
</em>(
&fil,
"%u", -
1);
<span class=
"c">/*
"65535" or
"4294967295" */
</span>
78 <em>f_printf
</em>(
&fil,
"%04x",
0xAB3);
<span class=
"c">/*
"0ab3" */
</span>
79 <em>f_printf
</em>(
&fil,
"%08lX",
0x123ABCL);
<span class=
"c">/*
"00123ABC" */
</span>
80 <em>f_printf
</em>(
&fil,
"%04o",
255);
<span class=
"c">/*
"0377" */
</span>
81 <em>f_printf
</em>(
&fil,
"%016b",
0x550F);
<span class=
"c">/*
"0101010100001111" */
</span>
82 <em>f_printf
</em>(
&fil,
"%s",
"String");
<span class=
"c">/*
"String" */
</span>
83 <em>f_printf
</em>(
&fil,
"%8s",
"abc");
<span class=
"c">/*
" abc" */
</span>
84 <em>f_printf
</em>(
&fil,
"%-8s",
"abc");
<span class=
"c">/*
"abc " */
</span>
85 <em>f_printf
</em>(
&fil,
"%c", 'a');
<span class=
"c">/*
"a" */
</span>
86 <em>f_printf
</em>(
&fil,
"%f",
10.0);
<span class=
"c">/* f_printf lacks floating point support */
</span>
91 <div class=
"para ref">
93 <p><tt><a href=
"open.html">f_open
</a>,
<a href=
"putc.html">f_putc
</a>,
<a href=
"puts.html">f_puts
</a>,
<a href=
"gets.html">f_gets
</a>,
<a href=
"close.html">f_close
</a>,
<a href=
"sfile.html">FIL
</a></tt></p>
96 <p class=
"foot"><a href=
"../00index_e.html">Return
</a></p>