- Added a memory configuration option. (_USE_LFN) - Added file lock feature. (_FS_SHARE) - Added fast seek feature. (_USE_FASTSEEK) - Changed some types on the API, XCHAR->TCHAR. - Changed fname member in the FILINFO structure on Unicode cfg. - String functions support UTF-8 encoding files on Unicode cfg.
103 lines
3.1 KiB
HTML
103 lines
3.1 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="alternate" hreflang="en" title="English" href="../en/getfree.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 TCHAR* <em>Path</em>, <span>/* 対象ドライブを指定します */</span>
|
|
DWORD* <em>Clusters</em>, <span>/* 空きクラスタ数を格納する変数へのポインタ */</span>
|
|
FATFS** <em>FileSystemObject</em> <span>/* ファイル・システム・オブジェクトを指すポインタへのポインタ */</span>
|
|
);
|
|
</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>
|
|
</div>
|
|
|
|
|
|
<div class="para">
|
|
<h4>対応情報</h4>
|
|
<p><tt>_FS_READONLY == 0</tt>で、且つ<tt>_FS_MINIMIZE == 0</tt>のとき使用可能です。</p>
|
|
</div>
|
|
|
|
|
|
<div class="para">
|
|
<h4>使用例</h4>
|
|
<pre>
|
|
FATFS *fs;
|
|
DWORD fre_clust, fre_sect, tot_sect;
|
|
|
|
|
|
<span>/* ドライブ1のボリューム情報と空きクラスタ数を得る */</span>
|
|
res = f_getfree("1:", &fre_clust, &fs);
|
|
if (res) die(res);
|
|
|
|
<span>/* 全セクタ数と空きセクタ数を計算 */</span>
|
|
tot_sect = (fs->max_clust - 2) * fs->csize;
|
|
fre_sect = fre_clust * fs->csize;
|
|
|
|
<span>/* ドライブサイズと空きサイズの表示 (512バイト/セクタと仮定) */</span>
|
|
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>
|