getfree.html 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html lang="ja">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
  5. <meta http-equiv="Content-Style-Type" content="text/css">
  6. <link rel="up" title="FatFs" href="../00index_j.html">
  7. <link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
  8. <title>FatFs - f_getfree</title>
  9. </head>
  10. <body>
  11. <div class="para">
  12. <h2>f_getfree</h2>
  13. <p>論理ドライブ上の未使用クラスタ数を得ます。</p>
  14. <pre>
  15. FRESULT f_getfree (
  16. const char* <em>Path</em>, /* 対象ドライブのルート・ディレクトリ */
  17. DWORD* <em>Clusters</em>, /* 空きクラスタ数を格納する変数へのポインタ */
  18. FATFS** <em>FileSystemObject</em> /* ファイル・システム・オブジェクトを指すポインタへのポインタ */
  19. );
  20. </pre>
  21. </div>
  22. <div class="para">
  23. <h4>引数</h4>
  24. <dl class="par">
  25. <dt>Path</dt>
  26. <dd>対象の論理ドライブのルートディレクトリの<a href="filename.html">パス名</a>が入った<tt>'\0'</tt>で終わる文字列へのポインタを指定します。</dd>
  27. <dt>Clusters</dt>
  28. <dd>空きクラスタ数を格納する<tt>DWORD</tt>変数へのポインタを指定します。</dd>
  29. <dt>FileSystemObject</dt>
  30. <dd>対象ドライブのファイル・システム・オブジェクトを指すポインタが返されます。</dd>
  31. </dl>
  32. </div>
  33. <div class="para">
  34. <h4>戻り値</h4>
  35. <dl class="ret">
  36. <dt>FR_OK (0)</dt>
  37. <dd>正常終了。<tt>*Clusters</tt>に空きクラスタ数が返されます。</dd>
  38. <dt>FR_INVALID_DRIVE</dt>
  39. <dd>ドライブ番号が不正。</dd>
  40. <dt>FR_NOT_READY</dt>
  41. <dd>メディアがセットされていないなど、ディスクドライブが動作不能状態。</dd>
  42. <dt>FR_RW_ERROR</dt>
  43. <dd>ディスク・エラーまたは内部エラーによる失敗。</dd>
  44. <dt>FR_NOT_ENABLED</dt>
  45. <dd>その論理ドライブにワーク・エリアが与えられていない。</dd>
  46. <dt>FR_NO_FILESYSTEM</dt>
  47. <dd>ディスク上に有効なFATパーテーションが見つからない。</dd>
  48. </dl>
  49. </div>
  50. <div class="para">
  51. <h4>解説</h4>
  52. <p>論理ドライブ上の空きクラスタ数を取得します。返されたファイル・システム・オブジェクトの<tt>csize</tt>メンバがクラスタあたりのセクタ数を示しているので、これを元に実際の空きサイズが計算できます。FAT32ボリュームにおいて、_USE_FSINFOが指定されているときは不正確な値を返す可能性があり、指定されていないときは処理に時間がかかります。</p>
  53. <p>リードオンリー構成および<tt>_FS_MINIMIZE &gt;= 1</tt>ではこの関数はサポートされません。</p>
  54. </div>
  55. <div class="para">
  56. <h4>使用例</h4>
  57. <pre>
  58. FATFS *fs;
  59. DWORD clust;
  60. // Get free clusters
  61. res = f_getfree("", &clust, &fs);
  62. if (res) die(res);
  63. // Get free space
  64. printf("%lu KB total disk space.\n"
  65. "%lu KB available on the disk.\n",
  66. (DWORD)(fs->max_clust - 2) * fs->csize / 2,
  67. clust * fs->csize / 2);
  68. </pre>
  69. </div>
  70. <div class="para">
  71. <h4>参照</h4>
  72. <tt><a href="sfatfs.html">FATFS</a></tt>
  73. </div>
  74. <p class="foot"><a href="../00index_j.html">戻る</a></p>
  75. </body>
  76. </html>