- Fixed f_unlink() may return FR_OK on error. - Fixed wrong cache control in f_lseek(). - Added relative path feature. - Added f_chdir(). - Added f_chdrive(). - Added proper case conversion to extended char.
		
			
				
	
	
		
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 | |
| <html lang="ja">
 | |
| <head>
 | |
| <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
 | |
| <meta http-equiv="Content-Style-Type" content="text/css">
 | |
| <link rel="up" title="FatFs" href="../00index_j.html">
 | |
| <link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
 | |
| <title>FatFs - f_getfree</title>
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| 
 | |
| <div class="para">
 | |
| <h2>f_getfree</h2>
 | |
| <p>論理ドライブ上の未使用クラスタ数を得ます。</p>
 | |
| <pre>
 | |
| FRESULT f_getfree (
 | |
|   const XCHAR* <em>Path</em>,       /* 対象ドライブのルート・ディレクトリ */
 | |
|   DWORD* <em>Clusters</em>,         /* 空きクラスタ数を格納する変数へのポインタ */
 | |
|   FATFS** <em>FileSystemObject</em> /* ファイル・システム・オブジェクトを指すポインタへのポインタ */
 | |
| );
 | |
| </pre>
 | |
| </div>
 | |
| 
 | |
| <div class="para">
 | |
| <h4>引数</h4>
 | |
| <dl class="par">
 | |
| <dt>Path</dt>
 | |
| <dd>対象の論理ドライブのルートディレクトリの<a href="filename.html">パス名</a>が入った<tt>'\0'</tt>で終わる文字列へのポインタを指定します。</dd>
 | |
| <dt>Clusters</dt>
 | |
| <dd>空きクラスタ数を格納する<tt>DWORD</tt>変数へのポインタを指定します。</dd>
 | |
| <dt>FileSystemObject</dt>
 | |
| <dd>対象ドライブのファイル・システム・オブジェクトを指すポインタが返されます。</dd>
 | |
| </dl>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>戻り値</h4>
 | |
| <dl class="ret">
 | |
| <dt>FR_OK (0)</dt>
 | |
| <dd>正常終了。<tt>*Clusters</tt>に空きクラスタ数が返されます。</dd>
 | |
| <dt>FR_INVALID_DRIVE</dt>
 | |
| <dd>ドライブ番号が不正。</dd>
 | |
| <dt>FR_NOT_READY</dt>
 | |
| <dd>メディアがセットされていないなど、ディスクドライブが動作不能状態。</dd>
 | |
| <dt>FR_DISK_ERR</dt>
 | |
| <dd>ディスク・エラーによる失敗。</dd>
 | |
| <dt>FR_INT_ERR</dt>
 | |
| <dd>不正なFAT構造または内部エラーによる失敗。</dd>
 | |
| <dt>FR_NOT_ENABLED</dt>
 | |
| <dd>その論理ドライブにワーク・エリアが与えられていない。</dd>
 | |
| <dt>FR_NO_FILESYSTEM</dt>
 | |
| <dd>ディスク上に有効なFATパーテーションが見つからない。</dd>
 | |
| </dl>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>解説</h4>
 | |
| <p>論理ドライブ上の空きクラスタ数を取得します。返されたファイル・システム・オブジェクトの<tt>csize</tt>メンバがクラスタあたりのセクタ数を示しているので、これを元に実際の空きサイズが計算できます。FAT32ボリュームにおいては、FSINFOの状態によっては不正確な値を返したり、処理に時間がかかったりする可能性があります。</p>
 | |
| <p>リードオンリー構成および<tt>_FS_MINIMIZE >= 1</tt>ではこの関数はサポートされません。</p>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>使用例</h4>
 | |
| <pre>
 | |
|     FATFS *fs;
 | |
|     DWORD fre_clust, fre_sect, tot_sect;
 | |
| 
 | |
| 
 | |
|     // Get drive information and free clusters
 | |
|     res = f_getfree("/", &fre_clust, &fs);
 | |
|     if (res) die(res);
 | |
| 
 | |
|     // Get total sectors and free sectors
 | |
|     tot_sect = (fs->max_clust - 2) * fs->csize;
 | |
|     fre_sect = fre_clust * fs->csize;
 | |
| 
 | |
|     // Print free space in unit of KB (assuming 512B/sector)
 | |
|     printf("%lu KB total drive space.\n"
 | |
|            "%lu KB available.\n",
 | |
|            fre_sect / 2, tot_sect / 2);
 | |
| </pre>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <div class="para">
 | |
| <h4>参照</h4>
 | |
| <tt><a href="sfatfs.html">FATFS</a></tt>
 | |
| </div>
 | |
| 
 | |
| <p class="foot"><a href="../00index_j.html">戻る</a></p>
 | |
| </body>
 | |
| </html>
 |