- Added f_getcwd(). (_FS_RPATH = 2) - Added sector erase feature. (_USE_ERASE) - Moved file lock semaphore table from fs object to the bss. - Fixed a wrong directory entry is created on non-LFN cfg when the given name contains ';'. - Fixed f_mkfs() creates wrong FAT32 volume.
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.4 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="alternate" hreflang="ja" title="Japanese" href="../ja/getfree.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 TCHAR* <em>Path</em>,        <span>/* Logical drive number */</span>
 | |
|   DWORD* <em>Clusters</em>,          <span>/* Pointer to the variable to store number of free clusters */</span>
 | |
|   FATFS** <em>FileSystemObject</em>  <span>/* Pointer to pointer to file system object */</span>
 | |
| );
 | |
| </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">logical drive</a>.</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_DISK_ERR</dt>
 | |
| <dd>The function failed due to an error in the disk function.</dd>
 | |
| <dt>FR_INT_ERR</dt>
 | |
| <dd>The function failed due to a wrong FAT structure 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 drive.</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 refrecting number of sectors per cluster, so that the free space in unit of sector can be calcurated with this. When FSInfo structure on FAT32 volume is not in sync, this function can return an incorrect free cluster count.</p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>QuickInfo</h4>
 | |
| <p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_FS_MINIMIZE == 0</tt>.</p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>Example</h4>
 | |
| <pre>
 | |
|     FATFS *fs;
 | |
|     DWORD fre_clust, fre_sect, tot_sect;
 | |
| 
 | |
| 
 | |
|     <span>/* Get volume information and free clusters of drive 1 */</span>
 | |
|     res = f_getfree("1:", &fre_clust, &fs);
 | |
|     if (res) die(res);
 | |
| 
 | |
|     <span>/* Get total sectors and free sectors */</span>
 | |
|     tot_sect = (fs->n_fatent - 2) * fs->csize;
 | |
|     fre_sect = fre_clust * fs->csize;
 | |
| 
 | |
|     <span>/* Print free space in unit of KB (assuming 512 bytes/sector) */</span>
 | |
|     printf("%lu KB total drive space.\n"
 | |
|            "%lu KB available.\n",
 | |
|            fre_sect / 2, tot_sect / 2);
 | |
| </pre>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>See Also</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>
 |