- Added f_forward(). (Tiny-FatFs) - Added string functions: fputc(), fputs(), fprintf() and fgets(). - Improved performance of f_lseek() on move to the same or following cluster.
		
			
				
	
	
		
			92 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			92 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=iso-8859-1">
 | |
| <meta http-equiv="Content-Style-Type" content="text/css">
 | |
| <link rel="up" title="FatFs" href="../00index_e.html">
 | |
| <link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
 | |
| <title>FatFs - f_getfree</title>
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| 
 | |
| <div class="para">
 | |
| <h2>f_getfree</h2>
 | |
| <p>The f_getfree function gets number of the free clusters.</p>
 | |
| <pre>
 | |
| FRESULT f_getfree (
 | |
|   const char* <em>Path</em>,         /* Root directory of the drive */
 | |
|   DWORD* <em>Clusters</em>,          /* Pointer to the variable to store number of free clusters */
 | |
|   FATFS** <em>FileSystemObject</em>  /* Pointer to pointer to file system object */
 | |
| );
 | |
| </pre>
 | |
| </div>
 | |
| 
 | |
| <div class="para">
 | |
| <h4>Parameters</h4>
 | |
| <dl class="par">
 | |
| <dt>Path</dt>
 | |
| <dd>Pinter to the null-terminated string that specifies the <a href="filename.html">root directory</a> of the logical drive. Always specify a null-string for Tiny-FatFs.</dd>
 | |
| <dt>Clusters</dt>
 | |
| <dd>Pointer to the DWORD variable to store number of free clusters.</dd>
 | |
| <dt>FileSystemObject</dt>
 | |
| <dd>Pointer to pointer that to store a pointer to the corresponding file system object.</dd>
 | |
| </dl>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>Return Values</h4>
 | |
| <dl class="ret">
 | |
| <dt>FR_OK (0)</dt>
 | |
| <dd>The function succeeded. The <tt><em>*Clusters</em></tt> has number of free clusters and <tt><em>*FileSystemObject</em></tt> points the file system object.</dd>
 | |
| <dt>FR_INVALID_DRIVE</dt>
 | |
| <dd>The drive number is invalid.</dd>
 | |
| <dt>FR_NOT_READY</dt>
 | |
| <dd>The disk drive cannot work due to no medium in the drive or any other reason.</dd>
 | |
| <dt>FR_RW_ERROR</dt>
 | |
| <dd>The function failed due to a disk error or an internal error.</dd>
 | |
| <dt>FR_NOT_ENABLED</dt>
 | |
| <dd>The logical drive has no work area.</dd>
 | |
| <dt>FR_NO_FILESYSTEM</dt>
 | |
| <dd>There is no valid FAT partition on the disk.</dd>
 | |
| </dl>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>Descriptions</h4>
 | |
| <p>The f_getfree function gets number of free clusters on the drive. The member <tt>csize</tt> in the file system object is refreting number of sectors per cluster, so that the free space in unit of sector can be calcurated with this. When <tt>_USE_FSINFO</tt> option is enabled, this function might return an inaccurate free cluster count on FAT32 volume. When it is disabled, this function will take a time on FAT32 volume.</p>
 | |
| <p>This function is not supported in read-only configuration and minimization level of >= 1.</p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>Example</h4>
 | |
| <pre>
 | |
|     FATFS *fs;
 | |
|     DWORD clust;
 | |
| 
 | |
| 
 | |
|     // Get free clusters
 | |
|     res = f_getfree("", &clust, &fs);
 | |
|     if (res) die(res);
 | |
| 
 | |
|     // Get free space
 | |
|     printf("%lu KB total disk space.\n"
 | |
|            "%lu KB available on the disk.\n",
 | |
|            (DWORD)(fs->max_clust - 2) * fs->csize / 2,
 | |
|            clust * fs->csize / 2);
 | |
| </pre>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>References</h4>
 | |
| <p><tt><a href="sfatfs.html">FATFS</a></tt></p>
 | |
| </div>
 | |
| 
 | |
| <p class="foot"><a href="../00index_e.html">Return</a></p>
 | |
| </body>
 | |
| </html>
 |