- 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)
		
			
				
	
	
		
			88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | |
| <html lang="en">
 | |
| <head>
 | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | |
| <meta http-equiv="Content-Style-Type" content="text/css">
 | |
| <link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
 | |
| <title>FatFs - f_sync</title>
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| 
 | |
| <div class="para func">
 | |
| <h2>f_sync</h2>
 | |
| <p>The f_sync function flushes the cached information of a writing file.</p>
 | |
| <pre>
 | |
| FRESULT f_sync (
 | |
|   FIL* <span class="arg">fp</span>     <span class="c">/* [IN] File object */</span>
 | |
| );
 | |
| </pre>
 | |
| </div>
 | |
| 
 | |
| <div class="para arg">
 | |
| <h4>Parameter</h4>
 | |
| <dl class="par">
 | |
| <dt>fp</dt>
 | |
| <dd>Pointer to the open file object to be flushed.</dd>
 | |
| </dl>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para ret">
 | |
| <h4>Return Values</h4>
 | |
| <p>
 | |
| <a href="rc.html#ok">FR_OK</a>,
 | |
| <a href="rc.html#de">FR_DISK_ERR</a>,
 | |
| <a href="rc.html#ie">FR_INT_ERR</a>,
 | |
| <a href="rc.html#io">FR_INVALID_OBJECT</a>,
 | |
| <a href="rc.html#tm">FR_TIMEOUT</a>
 | |
| </p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para desc">
 | |
| <h4>Description</h4>
 | |
| <p>The <tt>f_sync</tt> function performs the same process as <tt>f_close</tt> function but the file is left opened and can continue read/write/seek operations to the file. This is suitable for the applications that open files for a long time in write mode, such as data logger. Performing <tt>f_sync</tt> function in certain interval can minimize the risk of data loss due to a sudden blackout, wrong media removal or unrecoverable disk error. For more information, refer to <a href="appnote.html#critical">application note</a>.</p>
 | |
| <pre>
 | |
| Case 1. Normal write sequence
 | |
| 
 | |
|                                 Time -->                                     ↓Normal shutdown
 | |
| OwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwC <Power off>
 | |
| 
 | |
| 
 | |
| Case 2. Without using f_sync()
 | |
| 
 | |
|                                 Time -->                             ↓System crush
 | |
| O<span class="e">wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww</span>
 | |
|  |<--------------- All data written will be lost ------------------>|
 | |
| 
 | |
| 
 | |
| Case 3. Using f_sync()
 | |
|                                 Time -->                             ↓System crush
 | |
| OwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwwwwwwS<span class="e">wwwww</span>
 | |
|                             Data after last f_sync will be lost |<->| 
 | |
| O - f_open()
 | |
| C - f_close()
 | |
| w - f_write()
 | |
| S - f_sync()
 | |
| </pre>
 | |
| <p>However there is no sense in <tt>f_sync</tt> function jsut before <tt>f_close</tt> function, because the <tt>f_close</tt> performs <tt>f_sync</tt> in it. Actually, the differnce between these functions is that the file object is invalidated or not.</p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para comp">
 | |
| <h4>QuickInfo</h4>
 | |
| <p>Available when <tt><a href="config.html#fs_readonly">FF_FS_READONLY</a> == 0</tt>.</p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para ref">
 | |
| <h4>See Also</h4>
 | |
| <p><tt><a href="close.html">f_close</a></tt>, <a href="appnote.html#critical">Critical section</a></p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <p class="foot"><a href="../00index_e.html">Return</a></p>
 | |
| </body>
 | |
| </html>
 |