From 7b78a5a287827db9e9b16286f3604aef69b37c5c Mon Sep 17 00:00:00 2001 From: Leo C Date: Mon, 17 Nov 2014 14:47:05 +0100 Subject: Import fatfs R0.10c --- fatfs/doc/ja/appnote.html | 110 ++++++++++++++++++++++---------------------- fatfs/doc/ja/chdir.html | 30 ++++++------ fatfs/doc/ja/chdrive.html | 22 ++++----- fatfs/doc/ja/chmod.html | 40 ++++++++-------- fatfs/doc/ja/close.html | 26 +++++------ fatfs/doc/ja/closedir.html | 26 +++++------ fatfs/doc/ja/dinit.html | 22 ++++----- fatfs/doc/ja/dioctl.html | 86 +++++++++++++++++----------------- fatfs/doc/ja/dread.html | 47 ++++++++++--------- fatfs/doc/ja/dstat.html | 22 ++++----- fatfs/doc/ja/dwrite.html | 50 ++++++++++---------- fatfs/doc/ja/eof.html | 28 +++++------ fatfs/doc/ja/error.html | 28 +++++------ fatfs/doc/ja/fattime.html | 30 ++++++------ fatfs/doc/ja/fdisk.html | 48 +++++++++---------- fatfs/doc/ja/filename.html | 34 +++++++------- fatfs/doc/ja/forward.html | 72 ++++++++++++++--------------- fatfs/doc/ja/getcwd.html | 28 +++++------ fatfs/doc/ja/getfree.html | 40 ++++++++-------- fatfs/doc/ja/getlabel.html | 34 +++++++------- fatfs/doc/ja/gets.html | 36 +++++++-------- fatfs/doc/ja/lseek.html | 76 +++++++++++++++--------------- fatfs/doc/ja/mkdir.html | 24 +++++----- fatfs/doc/ja/mkfs.html | 80 +++++++++++++++++++++++--------- fatfs/doc/ja/mount.html | 50 ++++++++++---------- fatfs/doc/ja/open.html | 96 +++++++++++++++++++------------------- fatfs/doc/ja/opendir.html | 28 +++++------ fatfs/doc/ja/printf.html | 44 +++++++++--------- fatfs/doc/ja/putc.html | 32 ++++++------- fatfs/doc/ja/puts.html | 32 ++++++------- fatfs/doc/ja/rc.html | 18 ++++---- fatfs/doc/ja/read.html | 36 +++++++-------- fatfs/doc/ja/readdir.html | 60 ++++++++++++------------ fatfs/doc/ja/rename.html | 32 ++++++------- fatfs/doc/ja/sdir.html | 28 +++++------ fatfs/doc/ja/setlabel.html | 38 +++++++-------- fatfs/doc/ja/sfatfs.html | 48 +++++++++---------- fatfs/doc/ja/sfile.html | 34 +++++++------- fatfs/doc/ja/sfileinfo.html | 48 +++++++++---------- fatfs/doc/ja/size.html | 26 +++++------ fatfs/doc/ja/stat.html | 67 +++++++++++++++++++++------ fatfs/doc/ja/sync.html | 26 +++++------ fatfs/doc/ja/tell.html | 26 +++++------ fatfs/doc/ja/truncate.html | 22 ++++----- fatfs/doc/ja/unlink.html | 28 +++++------ fatfs/doc/ja/utime.html | 32 ++++++------- fatfs/doc/ja/write.html | 36 +++++++-------- 47 files changed, 1002 insertions(+), 924 deletions(-) (limited to 'fatfs/doc/ja') diff --git a/fatfs/doc/ja/appnote.html b/fatfs/doc/ja/appnote.html index 0fb5579..4985bae 100644 --- a/fatfs/doc/ja/appnote.html +++ b/fatfs/doc/ja/appnote.html @@ -6,24 +6,24 @@ -FatFsモジュール アプリケーション・ノート +FatFsモジュール アプリケーション ノート -

FatFsモジュール アプリケーション・ノート

+

FatFsモジュール アプリケーション ノート

  1. ポーティングの際に配慮すべきこと
  2. 限界値
  3. メモリ使用量
  4. -
  5. モジュール・サイズの縮小
  6. +
  7. モジュール サイズの縮小
  8. 長いファイル名
  9. 日本語ファイル名の大文字変換
  10. Unicode入出力への対応
  11. リエントランシー
  12. -
  13. 多重ファイル・アクセス
  14. -
  15. 効率的なファイル・アクセス
  16. -
  17. フラッシュ・メモリの特性への配慮
  18. -
  19. クリチカル・セクション
  20. +
  21. 多重ファイル アクセス
  22. +
  23. 効率的なファイル アクセス
  24. +
  25. フラッシュ メモリの特性への配慮
  26. +
  27. クリチカル セクション
  28. APIの拡張的使用例
  29. FatFsのライセンスについて
@@ -44,18 +44,18 @@ FatFsモジュールはANSI C(C89)準拠で記述されているので、普通

システム構成

下に示す依存関係図は、FatFsモジュール利用の組み込みシステムにおける代表的な構成を示します。

システム構成図

-

(a) FatFs用に書かれたディスク・モジュールがある場合は、そのまま追加するだけです。 (b) しかし、多くの既存のディスク・モジュールはそのAPIをFatFsに合わせるため、グルー関数が必要になるでしょう。

+

(a) FatFs用に書かれたディスク モジュールがある場合は、そのまま追加するだけです。 (b) しかし、多くの既存のディスク モジュールはそのAPIをFatFsに合わせるため、グルー関数が必要になるでしょう。

functional diagram

ユーザの作成する関数

-

必要なのはFatFsモジュールの要求するディスク関数を用意することだけで、それ以外にすることはありません。既に動作しているディスク・モジュールがあるなら、そのAPIをFatFsに合わせるかグルー関数を介してつなぐだけで済みますが、無い場合はほかから移植するか最初から書くかする必要があります。定義されている全ての関数が常に必要なわけではありません。例えば、リード・オンリー構成では書き込み系関数は必要ありません。次の表に構成オプションと要求される関数の対応を示します。

+

必要なのはFatFsモジュールの要求するディスク関数を用意することだけで、それ以外にすることはありません。既に動作しているディスク モジュールがあるなら、そのAPIをFatFsに合わせるかグルー関数を介してつなぐだけで済みますが、無い場合はほかから移植するか最初から書くかする必要があります。定義されている全ての関数が常に必要なわけではありません。例えば、リード オンリー構成では書き込み系関数は必要ありません。次の表に構成オプションと要求される関数の対応を示します。

- + @@ -66,18 +66,18 @@ FatFsモジュールはANSI C(C89)準拠で記述されているので、普通

限界値

メモリ使用量

-

次の表にいくつかのターゲットにおけるメモリ使用量の例を示します。テスト時の構成オプションはその下の通りです。数値の単位はバイトで、Vはボリューム数、Fは同時オープン・ファイル数を示します。コンパイラの最適化オプションはコード・サイズとしています。

+

次の表にいくつかのターゲットにおけるメモリ使用量の例を示します。テスト時の構成オプションはその下の通りです。数値の単位はバイトで、Vはボリューム数、Fは同時オープン ファイル数を示します。コンパイラの最適化オプションはコード サイズとしています。

必要な関数必要となる条件備考
disk_status
disk_initialize
disk_read
常時ffsample.zip (サンプル)
その他web上に多数
disk_write
get_fattime
disk_ioctl (CTRL_SYNC)
_FS_READONLY == 0
disk_ioctl (GET_SECTOR_COUNT)
disk_ioctl (GET_BLOCK_SIZE)
_USE_MKFS == 1
disk_ioctl (GET_SECTOR_SIZE)_MAX_SS != _MIN_SS
disk_ioctl (CTRL_ERASE_SECTOR)_USE_ERASE == 1
disk_ioctl (CTRL_TRIM)_USE_TRIM == 1
ff_convert
ff_wtoupper
_USE_LFN >= 1option/unicode.c
ff_cre_syncobj
ff_rel_grant
ff_req_grant
ff_del_syncobj
_FS_REENTRANT == 1option/syscall.c (サンプル)
ff_mem_alloc
ff_mem_free
_USE_LFN == 3
@@ -99,7 +99,7 @@ _USE_STRFUNC 0 (Disable string functions) _USE_MKFS 0 (Disable f_mkfs function) _USE_FORWARD 0 (Disable f_forward function) _USE_FASTSEEK 0 (Disable fast seek feature) -_CODE_PAGE 932 (Japanese Shift-JIS) +_CODE_PAGE 932 (Japanese Shift_JIS) _USE_LFN 0 (Disable LFN feature) _MAX_SS 512 (Fixed sector size) _FS_RPATH 0 (Disable relative path feature) @@ -112,7 +112,7 @@ _FS_LOCK 0 (Disable file lock control)
-

モジュール・サイズの縮小

+

モジュール サイズの縮小

次の表は構成オプションの設定値によりどの機能が削除されるかを示します。

ARM7
32bit
ARM7
Thumb
CM3
Thumb-2
AVRH8/300HPIC24RL78V850ESSH-2ARX600IA-32
CompilerGCCGCCGCCGCCCH38C30CC78K0RCA850SHCRXCVC6
@@ -152,19 +152,19 @@ _FS_LOCK 0 (Disable file lock control)

長いファイル名

-

FatFsモジュールは、長いファイル名(LFN)をサポートします。ファイルに付けられた2つの異なる名前(短いファル名と長いファイル名)は、f_readdir()を除くファイル操作関数において透過です。デフォルト構成では、LFN機能はOFFになっています。LFN機能を有効にするには、_USE_LFNを1,2または3に設定し、option/unicode.cをプロジェクトに追加します。LFN機能は、加えてある程度のワーク・エリア(LFN操作バッファ)を必要とします。バッファ長は使用できるメモリに応じて_MAX_LFNオプションで構成されることができます。LFNの長さは最大255文字に達するので、LFN完全対応のためには_MAX_LFNは255に設定されるべきです。与えられたファイル名に対してバッファ長が不足した場合、ファイル関数はFR_INVALID_NAMEで失敗します。

-

ファイル関数に再入を行う条件の下でLFN機能を使用する場合は、_USE_LFNは2または3に設定されなければなりません。この場合、ファイル関数はワーク・エリアを動的に確保(スタックまたはヒープ)します。バッファ・サイズは、(_MAX_LFN + 1) * 2バイトになるので、スタック等のサイズはそれを考慮した十分なサイズでなければなりません。

+

FatFsモジュールは、長いファイル名(LFN)をサポートします。ファイルに付けられた2つの異なる名前(短いファル名と長いファイル名)は、f_readdir()を除くファイル操作関数において透過です。デフォルト構成では、LFN機能はOFFになっています。LFN機能を有効にするには、_USE_LFNを1,2または3に設定し、option/unicode.cをプロジェクトに追加します。LFN機能は、加えてある程度のワーク エリア(LFN操作バッファ)を必要とします。バッファ長は使用できるメモリに応じて_MAX_LFNオプションで構成されることができます。LFNの長さは最大255文字に達するので、LFN完全対応のためには_MAX_LFNは255に設定されるべきです。与えられたファイル名に対してバッファ長が不足した場合、ファイル関数はFR_INVALID_NAMEで失敗します。

+

ファイル関数に再入を行う条件の下でLFN機能を使用する場合は、_USE_LFNは2または3に設定されなければなりません。この場合、ファイル関数はワーク エリアを動的に確保(スタックまたはヒープ)します。バッファ サイズは、(_MAX_LFN + 1) * 2バイトになるので、スタック等のサイズはそれを考慮した十分なサイズでなければなりません。

Function_FS_MINIMIZE_FS_READONLY_USE_STRFUNC_FS_RPATH_FS_LABEL_USE_MKFS_USE_FORWARD_MULTI_PARTITION
- +
LFN cfg on ARM7
コードページコードサイズ[bytes]
SBCS+3721
932(Shift-JIS)+62609
932(Shift_JIS)+62609
936(GBK)+177797
949(Korean)+139857
950(Big5)+111497
-

LFN機能の上手な使い方は、それを使わないということです。実際、組み込み用途ではLFN機能がどうしても必要になるということはほとんど無いはずです。LFNを有効にすると、選択されたコード・ページに応じてモジュール・サイズが増大されます。右の表に各コード・ページにおけるLFNを有効にしたときのモジュール・サイズの違いを示します。特に、CJK地域では数万の文字が使われていますが、不幸なことにそれは巨大なOEM-Unicode相互変換テーブルを要求し、モジュール・サイズは劇的に増大されます。その結果、それらのコード・ページにおいてLFNを有効にしたFatFsモジュールは、AVRを含む殆どの8ビット・マイコンにインプリメントされることができません。

-

LFN機能のハードルはそれだけではありません。マイクロソフト社はFATファイル・システムについていくつかの特許を保有しています。いずれもLFN機能の実装に関するもので、その利用に対して$0.25/unitのライセンス料を要求しています。このため、商用製品でLFN機能を利用するときは、最終仕向地によってはライセンスが必要になります。最近のFAT32ドライバの多くはLFN機能を含んでいるため、それらの使用に当たってライセンスが必要になりますが、FatFsではLFN機能を構成オプションで任意にON/OFFできるため、無効にしてライセンス問題を回避することもできます。

+

LFN機能の上手な使い方は、それを使わないということです。実際、組み込み用途ではLFN機能がどうしても必要になるということはほとんど無いはずです。LFNを有効にすると、選択されたコード ページに応じてモジュール サイズが増大します。右の表に各コード ページにおけるLFNを有効にしたときのモジュール サイズの違いを示します。特に、CJK地域では数万の文字が使われていますが、不幸なことにそれは巨大なOEM-Unicode相互変換テーブルを要求し、モジュール サイズは劇的に増大します。その結果、それらのコード ページにおいてLFNを有効にしたFatFsモジュールは、多くの8ビット マイコンにインプリメントすることができません。

+

LFN機能のハードルはそれだけではありません。マイクロソフト社はFATファイル システムについていくつかの特許を保有しています。いずれもLFN機能の実装に関するもので、その利用に対して$0.25/unitのライセンス料を要求しています。このため、商用製品でLFN機能を利用するときは、最終仕向地によってはライセンスが必要になります。最近のFAT32ドライバの多くはLFN機能を含んでいるため、それらの使用に当たってライセンスが必要になりますが、FatFsではLFN機能を構成オプションで任意にON/OFFできるため、無効にしてライセンス問題を回避することもできます。

@@ -179,61 +179,61 @@ _FS_LOCK 0 (Disable file lock control)

リエントランシー

-

互いに異なるボリュームに対するファイル操作はリエントラントで、常に同時平行に動作できます。同じボリュームに対してはデフォルトではリエントラントではありませんが、_FS_REENTRANTオプションでリエントラント(スレッド・セーフ)にすることはできます。この場合、OS依存の同期オブジェクト操作関数ff_cre_syncobj(), ff_del_syncobj(), ff_req_grant(), ff_rel_grant()もまたプロジェクトに追加されなければなりません。サンプル・コードと解説はoption/syncobj.cにあります。

+

互いに異なるボリュームに対するファイル操作はリエントラントで、常に同時平行に動作できます。同じボリュームに対してはデフォルトではリエントラントではありませんが、_FS_REENTRANTオプションでリエントラント(スレッド セーフ)にすることはできます。この場合、OS依存の同期オブジェクト操作関数ff_cre_syncobj(), ff_del_syncobj(), ff_req_grant(), ff_rel_grant()もまたプロジェクトに追加されなければなりません。サンプル コードと解説はoption/syncobj.cにあります。

この場合、あるタスクがボリュームを使用中に他のタスクからそのボリュームに対するファイル関数が呼び出されると、そのアクセスは先のタスクがファイル関数を抜けるまでブロックされます。もし、待ち時間が_TIMEOUTで指定された期間を越すと、その関数はFR_TIMEOUTでアボートします。いくつかのRTOSではタイムアウト機能はサポートされないかも知れません。

-

ひとつの例外がf_mount(), f_mkfs(), f_fdisk()にあります。これらの関数は同じボリューム(または関連する物理ドライブ)に対してリエントラントではありません。これらの関数を使用するときは、アプリケーション・レベルで排他制御しなければなりません。

+

ひとつの例外がf_mount(), f_mkfs(), f_fdisk()にあります。これらの関数は同じボリューム(または関連する物理ドライブ)に対してリエントラントではありません。これらの関数を使用するときは、アプリケーション レベルで排他制御しなければなりません。

注: このセクションはFatFsモジュールそれ自体のリエントランシーについて説明しています。その下位のディスクI/Oモジュールのリエントランシーに関しては何の前提もありません。

-

多重ファイル・アクセス

-

FatFsモジュールではデフォルトでは多重アクセス制御機能をサポートしていません。ファイルに対する多重アクセスは、そのアクセス・モードによって制限されます。一つのファイルに対する多重オープンは、それらが全てリード・モードのときに限って許可されます。書き込みモードを含む多重オープン、また開かれているファイルに対するリネームや削除を行ってはなりません。さもないと、そのボリュームのFAT構造が破壊される可能性があります。

-

_FS_LOCKに1以上の値(値は同時に管理できるファイル数)をセットすることで多重アクセス制御機能が有効になり、ファイル単位のアクセス制御を自動で行うこともできます。この場合、上記のルールを破ったオープン・リネーム・削除を試みると、その関数はFR_LOCKEDで失敗します。また、_FS_LOCKを越える数のファイルやサブ・ディレクトリを同時にオープンしようとすると、FR_TOO_MANY_OPEN_FILESで失敗します。

+

多重ファイル アクセス

+

FatFsモジュールではデフォルトでは多重アクセス制御機能をサポートしていません。ファイルに対する多重アクセスは、そのアクセス モードによって制限されます。一つのファイルに対する多重オープンは、それらが全てリード モードのときに限って許可されます。書き込みモードを含む多重オープン、また開かれているファイルに対するリネームや削除を行ってはなりません。さもないと、そのボリュームのFAT構造が破壊される可能性があります。

+

_FS_LOCKに1以上の値(値は同時に管理できるファイル数)をセットすることで多重アクセス制御機能が有効になり、ファイル単位のアクセス制御を自動で行うこともできます。この場合、上記のルールを破ったオープン・リネーム・削除を試みると、その関数はFR_LOCKEDで失敗します。また、_FS_LOCKを越える数のファイルやサブ ディレクトリを同時にオープンしようとすると、FR_TOO_MANY_OPEN_FILESで失敗します。

-

効率的なファイル・アクセス

-

小規模な組込システムでのファイルの読み書きにおける効率の良いアクセスのため、アプリケーション・プログラマはFatFsモジュールの中でどのような処理が行われているか考慮すべきです。ストレージ上のデータはf_read()により次のシーケンスで転送されます。

-

図1. セクタ・ミスアラインド・リード (ショート)
+

効率的なファイル アクセス

+

小規模な組込システムでのファイルの読み書きにおける効率の良いアクセスのため、アプリケーション プログラマはFatFsモジュールの中でどのような処理が行われているか考慮すべきです。ストレージ上のデータはf_read()により次のシーケンスで転送されます。

+

図1. セクタ ミスアラインド リード (ショート)
fig.1

-

図2. セクタ・ミスアラインド・リード (ロング)
+

図2. セクタ ミスアラインド リード (ロング)
fig.2

-

図3. セクタ・アラインド・リード
+

図3. セクタ アラインド リード
fig.3

-

ファイルI/Oバッファはセクタの一部のデータを読み書きするためのセクタ・バッファを意味します。セクタ・バッファは、それぞれのファイル・オブジェクト内のプライベート・セクタ・バッファまたはファイル・システム・オブジェクト内の共有セクタ・バッファのどちらかです。バッファ構成オプションの_FS_TINYは、データ転送にどちらを使うかを決定します。タイニー・バッファ(1)が選択されるとデータ・メモリの消費はそれぞれのファイル・オブジェクトで512バイト減少されます。この場合、FatFsモジュールはファイル・データの転送とFAT/ディレクトリ・アクセスにファイル・システム・オブジェクト内のセクタ・バッファだけを使用します。タイニー・バッファの欠点は、セクタ・バッファにキャッシュされたFATデータがファイル・データの転送により失われ、クラスタ境界の毎にリロードされなければならないことです。でも、悪くない性能と少ないメモリ消費の視点から多くのアプリケーションに適するでしょう。

-

図1はセクタの一部のデータがファイルI/Oバッファを経由で転送されることを示します。図2に示される長いデータの転送では、転送データの中間の1セクタまたはそれ以上のセクタにまたがる転送データがアプリケーション・バッファに直接転送されています。図3は転送データ全体がセクタ境界にアライメントされている場合を示しています。この場合、ファイルI/Oバッファは使用されません。直接転送においては最大の範囲のセクタがdisk_read()で一度に読み込まれますが、クラスタ境界を越えるマルチ・セクタ転送はそれが隣接であっても行われません。

-

このように、セクタにアライメントしたファイルの読み書きへの配慮はバッファ経由のデータ転送を避け、読み書き性能は改善されるでしょう。その効果に加え、タイニー構成でキャッシュされたFATデータがファイル・データの転送によりフラッシュされず、非タイニー構成と同じ性能を小さなメモリ・フットプリントで達成できます。

+

ファイルI/Oバッファはセクタの一部のデータを読み書きするためのセクタ バッファを意味します。セクタ バッファは、それぞれのファイル オブジェクト内のプライベート セクタ バッファまたはファイル システム オブジェクト内の共有セクタ バッファのどちらかです。バッファ構成オプションの_FS_TINYは、データ転送にどちらを使うかを決定します。タイニー バッファ(1)が選択されるとデータ メモリの消費はそれぞれのファイル オブジェクトで_MAX_SSバイト減少されます。この場合、FatFsモジュールはファイル データの転送とFAT/ディレクトリ アクセスにファイル システム オブジェクト内のセクタ バッファだけを使用します。タイニー バッファの欠点は、セクタ バッファにキャッシュされたFATデータがファイル データの転送により失われ、クラスタ境界の毎にリロードされなければならないことです。でも、悪くない性能と少ないメモリ消費の視点から多くのアプリケーションに適するでしょう。

+

図1はセクタの一部のデータがファイルI/Oバッファを経由で転送されることを示します。図2に示される長いデータの転送では、転送データの中間の1セクタまたはそれ以上のセクタにまたがる転送データがアプリケーション バッファに直接転送されています。図3は転送データ全体がセクタ境界にアライメントされている場合を示しています。この場合、ファイルI/Oバッファは使用されません。直接転送においては最大の範囲のセクタがdisk_read()で一度に読み込まれますが、クラスタ境界を越えるマルチ セクタ転送はそれが隣接であっても行われません。

+

このように、セクタにアライメントしたファイルの読み書きへの配慮はバッファ経由のデータ転送を避け、読み書き性能は改善されるでしょう。その効果に加え、タイニー構成でキャッシュされたFATデータがファイル データの転送によりフラッシュされず、非タイニー構成と同じ性能を小さなメモリ フットプリントで達成できます。

-

フラッシュ・メモリの特性への配慮

-

HDDなどのディスク・メディアとは異なり、SDCやCFCなどのフラッシュ・メモリ・メディアの性能を引き出すには、その特性を意識した制御が必要になります。

-

マルチ・セクタ書き込み

+

フラッシュ メモリの特性への配慮

+

HDDなどのディスク メディアとは異なり、SDCやCFCなどのフラッシュ メモリ メディアの性能を引き出すには、その特性を意識した制御が必要になります。

+

マルチ セクタ書き込み

-図6. マルチ/シングル・セクタ・ライトの比較
+図6. マルチ/シングル セクタ ライトの比較
fig.6
-

フラッシュ・メモリ・メディアの書き込み速度はシングル・セクタ書き込みの時に最も低いものになり、一回のトランザクションで転送されるセクタ数が大きくなるほど書き込み速度は向上します。この効果はバス速度が高速になるほど顕著で、10倍以上の差が現れることも珍しくありません。テスト結果は、マルチ・セクタ書き込み(W:16K, 32 sectors)がシングル・セクタ書き込み(W:100, 1 sector)よりどの程度速いかを明確に示しています。大容量メディアほどシングル・セクタ書き込みが遅くなる点もまた重要です。書き込みトランザクションの回数はまた、メディアの寿命にも影響してきます。このため、アプリケーションはなるべく大きなブロック(クラスタ・サイズまたは2の累乗セクタ境界にアライメントした)で読み書きを行う必要があります。もちろん、アプリケーションからメディアに至る全てのレイヤがマルチ・セクタ転送に対応していないと意味がありません。残念ながら、既存のオープン・ソースのドライバの多くはマルチ・セクタ転送に未対応です。なお、FatFsモジュールおよびサンプル・ドライバはマルチ・セクタ転送に対応しています。

+

フラッシュ メモリ メディアの書き込み速度はシングル セクタ書き込みの時に最も低いものになり、一回のトランザクションで転送されるセクタ数が大きくなるほど書き込み速度は向上します。この効果はバス速度が高速になるほど顕著で、10倍以上の差が現れることも珍しくありません。テスト結果は、マルチ セクタ書き込み(W:16K, 32 sectors)がシングル セクタ書き込み(W:100, 1 sector)よりどの程度速いかを明確に示しています。大容量メディアほどシングル セクタ書き込みが遅くなる点もまた重要です。書き込みトランザクションの回数はまた、メディアの寿命にも影響してきます。このため、アプリケーションはなるべく大きなブロック(クラスタ サイズまたは2の累乗セクタ境界にアライメントした)で読み書きを行う必要があります。もちろん、アプリケーションからメディアに至る全てのレイヤがマルチ セクタ転送に対応していないと意味がありません。残念ながら、既存のオープン ソースのドライバの多くはマルチ セクタ転送に未対応です。なお、FatFsモジュールおよびサンプル ドライバはマルチ セクタ転送に対応しています。

明示的なメモリ消去

-

通常のファイル消去では、記録されたデータに対して何らかの制御が行われるわけではなく、単にFAT上に未使用クラスタとして記録されているだけです。このため、ファイルが消去されたあともそれらは有効なメモリ・ブロックとしてフラッシュ・メモリ上に残ります。そこで、ファイルを消去するとき、占有していたデータ・セクタを明示的に消去(つまり未使用ブロックにする)することにより、メディア内の空きブロックを増やすことができます。これにより、次にそのブロックに書き込むときの消去動作が無くなり、書き込み性能が向上する可能性があります。また、ウェアレベリングに使えるブロックが増え、メディアの耐久性も向上するかも知れません。この機能を有効にするには、構成オプションの_USE_ERASEに1を設定します。これはフラッシュ・メモリ・メディアの内部動作に期待した制御なので、効果があるとは限りません。また、ファイル消去の時間が延びることも考慮に入れるべきです。

+

通常のファイル消去では、記録されたデータに対して何らかの制御が行われるわけではなく、単にFAT上に未使用クラスタとして記録されているだけです。このため、ファイルが消去されたあともそれらは有効なメモリ ブロックとしてフラッシュ メモリ上に残ります。そこで、ファイルを消去するとき、占有していたデータ セクタを明示的に消去(つまり未使用ブロックにする)することにより、メディア内の空きブロックを増やすことができます。これにより、次にそのブロックに書き込むときの消去動作が無くなり、書き込み性能が向上する可能性があります。また、ウェアレベリングに使えるブロックが増え、メディアの耐久性も向上するかも知れません。この機能を有効にするには、構成オプションの_USE_TRIMに1を設定します。これはフラッシュ メモリ メディアの内部動作に期待した制御なので、効果があるとは限りません。また、ファイル消去の時間が延びることも考慮に入れるべきです。

-

クリチカル・セクション

-

ストレージ上のFAT構造を操作している途中で、停電、不正なメディアの取り外し、回復不能なデータ・エラー等の障害が発生すると、処理が中途半端な状態で中断され、その結果としてFATボリュームの構造が破壊される可能性があります。次にFatFsモジュールにおけるクリチカル・セクションと、その間の障害により起きうるエラーの状態を示します。

+

クリチカル セクション

+

ストレージ上のFAT構造を操作している途中で、停電、不正なメディアの取り外し、回復不能なデータ エラー等の障害が発生すると、処理が中途半端な状態で中断され、その結果としてFATボリュームの構造が破壊される可能性があります。次にFatFsモジュールにおけるクリチカル セクションと、その間の障害により起きうるエラーの状態を示します。

-図4. 長いクリチカル・セクション
+図4. 長いクリチカル セクション
fig.4
-図5. 最小化したクリチカル・セクション
+図5. 最小化したクリチカル セクション
fig.5

-

赤で示したセクションを実行中に障害が発生した場合、クロス・リンクが発生して操作対象のファイル・ディレクトリが失われる可能性があります。黄色で示したセクションを実行中に障害が発生した場合、つぎのうちいずれかまたは複数の結果が生じる可能性があります。

+

赤で示したセクションを実行中に障害が発生した場合、クロス リンクが発生して操作対象のファイル ディレクトリが失われる可能性があります。黄色で示したセクションを実行中に障害が発生した場合、つぎのうちいずれかまたは複数の結果が生じる可能性があります。

-

いずれも書き込み中や操作の対象でないファイルには影響はありません。これらのクリチカル・セクションは、ファイルを書き込みモードで開いている時間を最小限にするか、f_sync()を適宜使用することで図5のようにリスクを最小化することができます。

+

いずれも書き込み中や操作の対象でないファイルには影響はありません。これらのクリチカル セクションは、ファイルを書き込みモードで開いている時間を最小限にするか、f_sync()を適宜使用することで図5のようにリスクを最小化することができます。

@@ -258,23 +258,23 @@ _FS_LOCK 0 (Disable file lock control)

FatFsのライセンスについて

-

ソース・ファイルのヘッダにライセンス条件が記述されているので、利用の際はそれに従うこと。英語を読めない方のために以下に日本語訳を示しておきます。

+

ソース ファイルのヘッダにライセンス条件が記述されているので、利用の際はそれに従うこと。英語を読めない方のために以下に日本語訳を示しておきます。

/*----------------------------------------------------------------------------/
 /  FatFs - FAT file system module  R0.10b                   (C)ChaN, 2014
 /-----------------------------------------------------------------------------/
-/ FatFsモジュールは、小規模な組み込みシステム向けの汎用FATファイルシステム・
-/ モジュールです。これはフリー・ソフトウェアとして、教育・研究・開発のために
-/ 以下のライセンス・ポリシーの下で公開されています。
+/ FatFsモジュールは、小規模な組み込みシステム向けの汎用FATファイルシステム 
+/ モジュールです。これはフリー ソフトウェアとして、教育・研究・開発のために
+/ 以下のライセンス ポリシーの下で公開されています。
 /
 /  Copyright (C) 2014, ChaN, all right reserved.
 /
-/ * FatFsモジュールはフリー・ソフトウェアであり、また無保証です。
+/ * FatFsモジュールはフリー ソフトウェアであり、また無保証です。
 / * 用途に制限はありません。あなたの責任の下において、個人的・非営利的な
 /   ものから商用製品の開発に及ぶ目的に使用・改変・再配布することができます。
-/ * ソース・コードを再配布するときは、上記の著作権表示を保持しなければなりません。
+/ * ソース コードを再配布するときは、上記の著作権表示を保持しなければなりません。
 /
 /-----------------------------------------------------------------------------/
-

要するにFatFsはタダで自由に使えるということです。ソース・コードを再配布するときは、このブロックをそのまま保持しておくこと。このようにFatFsはBSDライクなライセンスとしていますが、一つ大きな違いがあります。特に組み込み用途での利用価値を高めるため、バイナリ形式(ソース・コードを含まない形式全て)での再配布については、条件は設けていません。その場合は、FatFsおよびそのライセンス文書についてはドキュメントに明記してもしなくてもかまいません。これは、一条項BSDライセンスと等価ということです。もちろんGNU GPLプロジェクトとも共存可能です。何らかの変更を加えて再配布する際は、矛盾しない他のライセンス(GNU GPLや修正BSDライセンスなど)に変更することも可能です。

+

要するにFatFsはタダで自由に使えるということです。ソース コードを再配布するときは、このブロックをそのまま保持しておくこと。このようにFatFsはBSDライクなライセンスとしていますが、一つ大きな違いがあります。特に組み込み用途での利用価値を高めるため、バイナリ形式(ソース コードを含まない形式全て)での再配布については、条件は設けていません。その場合は、FatFsおよびそのライセンス文書についてはドキュメントに明記してもしなくてもかまいません。これは、一条項BSDライセンスと等価ということです。もちろんGNU GPLプロジェクトとも共存可能です。何らかの変更を加えて再配布する際は、矛盾しない他のライセンス(GNU GPLや修正BSDライセンスなど)に変更することも可能です。

戻る

diff --git a/fatfs/doc/ja/chdir.html b/fatfs/doc/ja/chdir.html index 4a68fe2..3b09207 100644 --- a/fatfs/doc/ja/chdir.html +++ b/fatfs/doc/ja/chdir.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_chdir

-

JgEfBNgύX܂B

+

カレント ディレクトリを変更します。

 FRESULT f_chdir (
-  const TCHAR* path /* [IN] fBNgւ̃|C^ */
+  const TCHAR* path /* [IN] ディレクトリ名へのポインタ */
 );
 
-

+

引数

path
-
ړΏۂ̃fBNgpXk'\0'I[̕w肵܂B
+
移動対象のディレクトリのパス名を示すヌル文字'\0'終端の文字列を指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -49,33 +49,33 @@ FRESULT f_chdir (

-

-

e{[̃JgEfBNgύX܂BJgEfBNǵÃ{[̃}Eg삪sꂽƂA[gEfBNgɏݒ肳܂BJgEfBNǵAt@CEVXeEIuWFNgɕێ邽߁Ã{[gpSẴ^XNɑ΂ĉe^܂B

+

解説

+

各ボリュームのカレント ディレクトリを変更します。カレント ディレクトリは、そのボリュームのマウント動作が行われたとき、ルート ディレクトリに初期設定されます。カレント ディレクトリは、ファイル システム オブジェクトに保持されるため、そのボリュームを使用する全てのタスクに対して影響を与えます。

-

Ή

-

_FS_RPATH == 1̂ƂɎgp”\ƂȂ܂B

+

対応情報

+

_FS_RPATH == 1のときに使用可能となります。

-

gp

+

使用例

-    /* JgEhCũJgEfBNgύX ([gdir1) */
+    /* カレント ドライブのカレント ディレクトリを変更 (ルート下のdir1へ) */
     f_chdir("/dir1");
 
-    /* hCu2̃JgEfBNgύX (efBNg) */
+    /* ドライブ2のカレント ディレクトリを変更 (親ディレクトリへ) */
     f_chdir("2:..");
 
-

Q

+

参照

f_chdrive

-

߂

+

戻る

diff --git a/fatfs/doc/ja/chdrive.html b/fatfs/doc/ja/chdrive.html index 305b0a7..7571d4e 100644 --- a/fatfs/doc/ja/chdrive.html +++ b/fatfs/doc/ja/chdrive.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_chdrive

-

JgEhCuύX܂B

+

カレント ドライブを変更します。

 FRESULT f_chdrive (
-  const TCHAR* path  /* [IN] ΏۃhCuw肵܂ */
+  const TCHAR* path  /* [IN] 対象ドライブを指定します */
 );
 
-

+

引数

path
-
JgEhCuɐݒ肷_hCuԍw肷pXw肵܂B
+
カレント ドライブに設定する論理ドライブ番号を指定するパス名を指定します。
-

߂l

+

戻り値

FR_OK, FR_INVALID_DRIVE @@ -40,19 +40,19 @@ FRESULT f_chdrive (

-

-

JgEhCuύX܂BVXeN̏l̓hCu0łB̐ݒFatFsW[̐ÓIϐɋL^邽߁ASẴ^XNɑ΂ĉe^܂B

+

解説

+

カレント ドライブを変更します。システム起動時の初期値はドライブ0です。この設定はFatFsモジュールの静的変数に記録されるため、全てのタスクに対して影響を与えます。

-

Ή

-

_FS_RPATH == 1ŁA_VOLUMES > 1̂ƂɎgp”\ƂȂ܂B

+

対応情報

+

_FS_RPATH == 1で、且つ_VOLUMES > 1のときに使用可能となります。

-

Q

+

参照

f_chdir

diff --git a/fatfs/doc/ja/chmod.html b/fatfs/doc/ja/chmod.html index e0d113e..cb8f2b3 100644 --- a/fatfs/doc/ja/chmod.html +++ b/fatfs/doc/ja/chmod.html @@ -1,7 +1,7 @@ - + @@ -13,39 +13,39 @@

f_chmod

-

t@C܂̓TuEfBNg̑ύX܂B

+

ファイルまたはサブ ディレクトリの属性を変更します。

 FRESULT f_chmod (
-  const TCHAR* path, /* [IN] IuWFNgւ̃|C^ */
-  BYTE attr,         /* [IN] ݒl */
-  BYTE mask          /* [IN] ύX}XN */
+  const TCHAR* path, /* [IN] オブジェクト名へのポインタ */
+  BYTE attr,         /* [IN] 設定値 */
+  BYTE mask          /* [IN] 変更マスク */
 );
 
-

+

引数

path
-
ύXΏۂ̃IuWFNgpXk'\0'I[̕w肵܂B
+
属性変更対象のオブジェクトのパス名を示すヌル文字'\0'終端の文字列を指定します。
attr
-
ݒ肷鑮Bw”\ȑ͎̒ʂŁȂgݍ킹Ŏw肵܂Bw肳Ȃ͉܂B
+
設定する属性。指定可能な属性は次の通りで、これらの組み合わせで指定します。指定されなかった属性は解除されます。
- - - - - + + + + +
lӖ
AM_RDO[hEI[
AM_ARCA[JCu
AM_SYSVXe
AM_HIDqhD
意味
AM_RDOリード オンリー
AM_ARCアーカイブ
AM_SYSシステム
AM_HIDヒドゥン
mask
-
ύX鑮̃}XNBw肵ݒ܂͉Aw肳Ȃ͏Ԃێ܂BattrƓlg܂B
+
変更する属性のマスク。指定した属性が設定または解除され、指定されなかった属性は状態が保持されます。attrと同じ値を使います。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -65,19 +65,19 @@ FRESULT f_chmod (

-

Ή

-

_FS_READONLY == 0ŁA_FS_MINIMIZE == 0̂Ƃgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_FS_MINIMIZE == 0のとき使用可能です。

-

gp

+

使用例

-    /* [hI[ZbgAA[JCuNAȂ͕ύXȂ */
+    /* リードオンリーをセット、アーカイブをクリア、その他は変更しない */
     f_chmod("file.txt", AM_RDO, AM_RDO | AM_ARC);
 
-

߂

+

戻る

diff --git a/fatfs/doc/ja/close.html b/fatfs/doc/ja/close.html index cefd795..71d3c01 100644 --- a/fatfs/doc/ja/close.html +++ b/fatfs/doc/ja/close.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_close

-

t@C‚܂B

+

ファイルを閉じます。

 FRESULT f_close (
-  FIL* fp     /* [IN] t@CEIuWFNgւ̃|C^ */
+  FIL* fp     /* [IN] ファイル オブジェクトへのポインタ */
 );
 
-

+

引数

fp
-
‚悤Ƃt@C̃t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
閉じようとするファイルのファイル オブジェクト構造体へのポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -44,23 +44,23 @@ FRESULT f_close (

-

-

t@C‚܂B炩݂̏̍sꂽt@C̏ꍇALbVꂽ([h/CgEobt@̃f[^AύXꂽFATfBNg)̓fBXNɏ߂܂B֐IƁÃt@CEIuWFNg͖ɂȂÃł܂B

-

t@CEIuWFNgǂݏop[hŁA_FS_LOCKIvVIĂȂꍇ́At@C‚Ƀt@CEIuWFNgj邱Ƃł܂BA͏̌݊̓_Ő͂܂B

+

解説

+

ファイルを閉じます。何らかの書き込みの行われたファイルの場合、キャッシュされた状態(リード/ライト バッファ上のデータ、変更されたFATやディレクトリ項目)はディスクに書き戻されます。関数が正常終了すると、そのファイル オブジェクトは無効になり、そのメモリも解放できます。

+

ファイル オブジェクトが読み出し専用モードで、_FS_LOCKオプションが選択されていない場合は、ファイルを閉じずにファイル オブジェクトを破棄することもできます。しかし、これは将来の互換性の点で推奨はされません。

-

Ή

-

SĂ̍\Ŏgp”\łB

+

対応情報

+

全ての構成で使用可能です。

-

Q

+

参照

f_open, f_read, f_write, f_sync, FIL, FATFS
-

߂

+

戻る

diff --git a/fatfs/doc/ja/closedir.html b/fatfs/doc/ja/closedir.html index 021e8c8..2ccafdb 100644 --- a/fatfs/doc/ja/closedir.html +++ b/fatfs/doc/ja/closedir.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_closedir

-

fBNg‚܂B

+

ディレクトリを閉じます。

 FRESULT f_closedir (
-  DIR* dp     /* [IN] fBNgEIuWFNgւ̃|C^ */
+  DIR* dp     /* [IN] ディレクトリ オブジェクトへのポインタ */
 );
 
-

+

引数

dp
-
‚悤ƂfBNg̃fBNgEIuWFNg\̂ւ̃|C^w肵܂B
+
閉じようとするディレクトリのディレクトリ オブジェクト構造体へのポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_INT_ERR, @@ -42,23 +42,23 @@ FRESULT f_closedir (

-

-

fBNg‚܂B֐IƁÃfBNgEIuWFNg͖ɂȂÃł܂B

-

_FS_LOCKIvVIĂȂꍇ́Ȁs킸ɃfBNgEIuWFNgj邱Ƃł܂BA͏̌݊̓_Ő͂܂B

+

解説

+

ディレクトリを閉じます。関数が正常終了すると、そのディレクトリ オブジェクトは無効になり、そのメモリも解放できます。

+

_FS_LOCKオプションが選択されていない場合は、この処理を行わずにディレクトリ オブジェクトを破棄することもできます。しかし、これは将来の互換性の点で推奨はされません。

-

Ή

-

_FS_MINIMIZE <= 1̂Ƃgp”\ɂȂ܂B

+

対応情報

+

_FS_MINIMIZE <= 1のとき使用可能になります。

-

Q

+

参照

f_opendir, f_readdir, DIR
-

߂

+

戻る

diff --git a/fatfs/doc/ja/dinit.html b/fatfs/doc/ja/dinit.html index 9168c0b..6329150 100644 --- a/fatfs/doc/ja/dinit.html +++ b/fatfs/doc/ja/dinit.html @@ -1,7 +1,7 @@ - + @@ -13,34 +13,34 @@

disk_initialize

-

Xg[WEfoCX܂B

+

ストレージ デバイスを初期化します。

 DSTATUS disk_initialize (
-  BYTE pdrv      /* [IN] hCuԍ */
+  BYTE pdrv      /* [IN] 物理ドライブ番号 */
 );
 
-

+

引数

pdrv
-
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
対象のデバイスを識別する物理ドライブ番号(0-9)が指定されます。
-

߂l

-

̊֐͖߂lƂăfBXNEXe[^XԂ܂BfBXNEXe[^X̏ڍׂɊւĂdisk_status()QƂĂB

+

戻り値

+

この関数は戻り値としてディスク ステータスを返します。ディスク ステータスの詳細に関してはdisk_status()を参照してください。

-

-

Xg[WEfoCXAf[^̓ǂݏȂǑSĂ̓삪”\ȏԂɂ܂B֐ƁA߂lSTA_NOINITtONA܂B

-

AvP[V͂̊֐ĂяoĂ͂Ȃ܂BȂƁAFAT{[j󂳂”\܂BG[ɂďKvȂƂ́Af_mount()gpĂBFatFsW[́A}EgɂAKvɉĂ̊֐Ăяo܂B

+

解説

+

ストレージ デバイスを初期化し、データの読み書きなど全ての動作が可能な状態にします。関数が成功すると、戻り値のSTA_NOINITフラグがクリアされます。

+

アプリケーションからはこの関数を呼び出してはなりません。さもないと、FATボリュームが破壊される可能性があります。エラー等により再初期化が必要なときは、f_mount()を使用してください。FatFsモジュールは、自動マウント動作により、必要に応じてこの関数を呼び出します。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/dioctl.html b/fatfs/doc/ja/dioctl.html index 30e49e3..120d798 100644 --- a/fatfs/doc/ja/dioctl.html +++ b/fatfs/doc/ja/dioctl.html @@ -1,7 +1,7 @@ - + @@ -13,83 +13,83 @@

disk_ioctl

-

ʓIȃf[^ǂݏȊÕXg[WEfoCX̂ɑ΂lXȐs܂B

+

一般的なデータ読み書き以外のストレージ デバイス自体に対する様々な制御を行います。

 DRESULT disk_ioctl (
-  BYTE pdrv,    /* [IN] hCuԍ */
-  BYTE cmd,     /* [IN] R}h */
-  void* buff    /* [I/O] f[^󂯓nobt@ */
+  BYTE pdrv,    /* [IN] 物理ドライブ番号 */
+  BYTE cmd,     /* [IN] 制御コマンド */
+  void* buff    /* [I/O] データ受け渡しバッファ */
 );
 
-

+

引数

pdrv
-
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
対象のデバイスを示す物理ドライブ番号(0-9)が指定されます。
cmd
-
R}hER[hw肳܂B
+
制御コマンド コードが指定されます。
buff
-
R}hɈˑp[^󂷂obt@w|C^w肳܂Bp[^̎̂ȂR}h̏ꍇ́AlɈӖ͂܂B
+
制御コマンドに依存したパラメータを授受するバッファを指すポインタが指定されます。パラメータの授受のないコマンドの場合は、値に意味はありません。
-

߂l

+

戻り値

RES_OK (0)
-
IB
+
正常終了。
RES_ERROR
-
炩̃G[B
+
何らかのエラーが発生した。
RES_PARERR
-
R}hsB
+
コマンドが不正。
RES_NOTRDY
-
hCu”\Ԃł͂ȂA܂͏ĂȂB
+
ドライブが動作可能状態ではない、または初期化されていない。
-

-

Xg[WEfoCX̎ނɂT|[gR}h͈قȂ܂AFatFsW[̂́A̔ėpR}ĥݎgpÃfoCXɈˑ͍s܂B

+

解説

+

ストレージ デバイスの種類によりサポートされるコマンドは異なりますが、FatFsモジュール自体は、次の汎用コマンドのみ使用し、特定のデバイスに依存した制御は行いません。

- - - - - - - + + + + + + +
WioctlR}h
R}h
CTRL_SYNCXg[WEfoCX̃f[^ݏ܂BCgEobNELbVȂǂ݂ꍇ́A܂ĂȂf[^𑦎݂܂BfBAւ݂̏ꂼdisk_write()̓Ŋꍇ́ÃR}hɑ΂Ă邱Ƃ͂܂B
GET_SECTOR_COUNTbuff̎wDWORD^ϐɃhCȗZN^Ԃ܂Bf_mkfs()f_fdisk()ĂяoA쐬{[̃TCY肷邽߂Ɏgp܂B
GET_SECTOR_SIZEbuff̎wWORD^ϐɃhCũZN^ETCYԂ܂BLl512A1024A2048܂4096łBZN^ETCYŒ\(_MAX_SS ==_MIN_SS)̂Ƃ͂̃R}h͎g邱Ƃ͂ȂAɂ̃ZN^ETCYœ삵Ȃ΂Ȃ܂B
GET_BLOCK_SIZEbuff̎wDWORD^ϐɃtbVȄubNETCY(ZN^P)Ԃ܂B132768͈̔͂2̗ݏ̒lłȂ΂Ȃ܂Bsȏꍇ܂̓tbVEȊÕfBAł1Ԃ܂Bf_mkfs()ł̂ݎgpA{[̃f[^̈͂̋EɃACg܂B
CTRL_ERASE_SECTORtbVË̗̖IBbuff̎wDWORD^zɂ͏̈ {JnZN^,IZN^} w肵ČĂяo܂B_USE_ERASE1̂ƂANX^ƂɌĂяo܂B́AATAR}hEZbgTrimR}hƓŁA̋@\T|[gȂꍇ͉Kv͂܂B܂A߂l̓`FbNꂸASɍsȂƂĂFatFs̓ɂ͉e܂B
標準ioctlコマンド
コマンド解説
CTRL_SYNCデバイスのデータ書き込み処理を完了させます。ドライバがライト バック キャッシュなどを持っている場合は、書き込まれていないデータを即時書き込みます。メディア上への書き込みがそれぞれdisk_write()の中で完了する場合は、このコマンドに対してすることはありません。
GET_SECTOR_COUNT総セクタ数の取得。buffの指すDWORD型変数にドライブ上の総セクタ数を返します。f_mkfs()およびf_fdisk()内から呼び出され、作成するボリュームのサイズを決定するために使用されます。
GET_SECTOR_SIZEセクタ サイズの取得。buffの指すWORD型変数にドライブのセクタ サイズを返します。有効値は512、1024、2048または4096です。セクタ サイズが固定(_MAX_SS ==_MIN_SS)のときはこのコマンドは使われることはなく、デバイスは常にそのセクタ サイズで動作しなければなりません。
GET_BLOCK_SIZE消去ブロック サイズの取得。buffの指すDWORD型変数にフラッシュ メモリの消去ブロック サイズ(セクタ単位)を返します。1から32768の範囲で2の累乗の値でなければなりません。ブロック サイズ不明またはフラッシュ メモリ以外のデバイスでは1を返します。f_mkfs()内でのみ使用され、作成されるボリュームのデータ領域はこの境界にアライメントされます。
CTRL_TRIM不必要セクタの通知。buffの指すDWORD型配列には不必要になった領域 {開始セクタ,終了セクタ} を指定して呼び出されます。TRIM機能が有効(_USE_TRIM == 1)で、クラスタが解放されるとき、およびフォーマット時に呼び出されます。これは、ATAコマンド セットのTrimコマンドと等価で、この機能をサポートしないデバイスは何もする必要はありません。また、戻り値はチェックされず、結果によってFatFsの動作が影響を受けることはありません。
-

FatFŝ̓foCXˑR}h⃆[U`R}h͈؎gp܂񂪁AAvP[V牽炩̃foCX䂪sƕ֗ȂƂ܂BAvP[VŕWȊO̐䂪KvȂƂ́AKvɉă[U`R}hljėpƂ悢ł傤BɃR}h̗܂B

+

FatFs自体はデバイス依存コマンドやユーザ定義コマンドは一切使用しませんが、アプリケーションから何らかのデバイス制御が行えると便利なことがあります。アプリケーション上で標準以外の制御が必要なときは、必要に応じてユーザ定義コマンドを追加して利用するとよいでしょう。次にコマンドの例を示します。

- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
[U`ioctlR}h̗
R}h
CTRL_FORMATfBA̕tH[}bgs܂BbuffNULLłȂƂAis\̂߂̃R[obN֐̃AhX܂B
CTRL_POWER_IDLEfoCXAChԂɂ܂Bʏ̓ǂݏvŃANeBuԂɖ߂ȂASTA_NOINITtOZbgKv͂܂B
CTRL_POWER_OFFfoCXVbg_EԂɂ܂BSTA_NOINIT̓Zbg܂BfoCXdisk_initialize()ŃANeBuԂɖ߂܂B
CTRL_LOCK[Uɂ郁fBA̎o֎~܂B
CTRL_UNLOCK[Uɂ郁fBA̎o‚܂B
CTRL_EJECTfBAro܂BASTA_NOINITSTA_NODISKtO̓Zbg܂B
MMC_GET_TYPEJ[hE^CvtO(b0:MMCv3, b1:SDv1, b2:SDv2+, b3:LBA)buff̎BYTEϐɓǂݏo܂B(MMC/SDJ[hp)
MMC_GET_CSDCSDWX^̓ebuff̎16oCg̃obt@ɓǂݏo܂B(MMC/SDJ[hp)
MMC_GET_CIDCIDWX^̓ebuff̎16oCg̃obt@ɓǂݏo܂B(MMC/SDJ[hp)
MMC_GET_OCROCRWX^̓ebuff̎4oCg̃obt@ɓǂݏo܂B(MMC/SDJ[hp)
MMC_GET_SDSTATSD STATUSWX^̓ebuff̎64oCg̃obt@ɓǂݏo܂B(SDJ[hp)
ATA_GET_REVrWER[hbuff̎16oCg̃obt@ɓǂݏo܂B(ATA/CFJ[hp)
ATA_GET_MODELfER[hbuff̎40oCg̃obt@ɓǂݏo܂B(ATA/CFJ[hp)
ATA_GET_SNVAԍbuff̎20oCg̃obt@ɓǂݏo܂B(ATA/CFJ[hp)
ユーザ定義ioctlコマンドの例
コマンド解説
CTRL_FORMATメディアの物理フォーマットを行います。buffはNULLでないとき、進行表示のためのコールバック関数のアドレスを示します。
CTRL_POWER_IDLEデバイスをアイドル状態にします。通常の読み書き要求でアクティブ状態に戻るなら、STA_NOINITフラグをセットする必要はありません。
CTRL_POWER_OFFデバイスをシャットダウン状態にします。STA_NOINITはセットされます。デバイスはdisk_initialize()でアクティブ状態に戻ります。
CTRL_LOCKユーザによるメディアの取り出しを禁止します。
CTRL_UNLOCKユーザによるメディアの取り出しを許可します。
CTRL_EJECTメディアを排出します。完了後、STA_NOINITSTA_NODISKフラグはセットされます。
MMC_GET_TYPEカード タイプを示すフラグ(b0:MMCv3, b1:SDv1, b2:SDv2+, b3:LBA)をbuffの示すBYTE変数に読み出します。(MMC/SDカード専用)
MMC_GET_CSDCSDレジスタの内容をbuffの示す16バイトのバッファに読み出します。(MMC/SDカード専用)
MMC_GET_CIDCIDレジスタの内容をbuffの示す16バイトのバッファに読み出します。(MMC/SDカード専用)
MMC_GET_OCROCRレジスタの内容をbuffの示す4バイトのバッファに読み出します。(MMC/SDカード専用)
MMC_GET_SDSTATSD STATUSレジスタの内容をbuffの示す64バイトのバッファに読み出します。(SDカード専用)
ATA_GET_REVリビジョン コードをbuffの示す16バイトのバッファに読み出します。(ATA/CFカード専用)
ATA_GET_MODELモデル コードをbuffの示す40バイトのバッファに読み出します。(ATA/CFカード専用)
ATA_GET_SNシリアル番号をbuffの示す20バイトのバッファに読み出します。(ATA/CFカード専用)
-

Ή

-

[hEI[\ŁAƒZN^ETCYŒ\̂Ƃ́Å֐͕KvƂ܂B

+

対応情報

+

リード オンリー構成で、かつセクタ サイズ固定構成のときは、この関数は必要とされません。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/dread.html b/fatfs/doc/ja/dread.html index 18b4238..2dac64e 100644 --- a/fatfs/doc/ja/dread.html +++ b/fatfs/doc/ja/dread.html @@ -1,7 +1,7 @@ - + @@ -13,59 +13,60 @@

disk_read

-

Xg[WEfoCXf[^ǂݏo܂B

+

ストレージ デバイスからデータを読み出します。

 DRESULT disk_read (
-  BYTE pdrv,     /* [IN] hCuԍ */
-  BYTE* buff,    /* [OUT] ǂݏoobt@ւ̃|C^ */
-  DWORD sector,  /* [IN] ǂݏoJnZN^ԍ */
-  UINT count     /* [IN] ǂݏoZN^ */
+  BYTE pdrv,     /* [IN] 物理ドライブ番号 */
+  BYTE* buff,    /* [OUT] 読み出しバッファへのポインタ */
+  DWORD sector,  /* [IN] 読み出し開始セクタ番号 */
+  UINT count     /* [IN] 読み出すセクタ数 */
 );
 
-

+

引数

pdrv
-
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
対象のデバイスを示す物理ドライブ番号(0-9)が指定されます。シングル ドライブ システムでは、常に0が指定されます。
buff
-
Xg[WEfoCXǂݏof[^i[oCgzw肳܂B
+
ストレージ デバイスから読み出したデータを格納するバイト配列が指定されます。
sector
-
ǂݏoJnZN^ԍBLBAŎw肳܂B
+
読み出しを開始するセクタ番号。32ビットLBAで指定されます。
count
-
ǂݏoZN^BFatFšĂяoł1`128͈̔͂Ɍ܂B
+
読み出すセクタ数(1~128)。
-

߂l

+

戻り値

RES_OK (0)
-
IB
+
正常終了。
RES_ERROR
-
ǂݍݒɃG[Ả񕜂ɂsB
+
読み込み中にエラーが発生し、その回復にも失敗した。
RES_PARERR
-
p[^sB
+
パラメータが不正。
RES_NOTRDY
-
hCu”\Ԃł͂ȂiĂȂjB
+
ドライブが動作可能状態ではない(初期化されていない)。
-

-

buffBYTE^Ȃ̂ŁAw肳AhXɃ[hEACgĂƂ͌܂BACgEAhXւ̓]́Aړ]ɂĔ邱Ƃ܂BAn[hEFA̐ł̂悤ȓ]s”\ȂƂ́Å֐œi]Ȃǂĉ邩A܂͕ʂ̕@őΉȂ΂Ȃ܂Bɂ‚̑Ή@܂(ꂩ‚OK)B

+

解説

+

ストレージ デバイスに対するデータの読み書きは、セクタ単位で行われます。FatFsでは512~4096バイトのセクタ サイズをサポートします。固定セクタ サイズ構成(_MIN_SS == MAX_SS)のときは、暗黙的にそのセクタ サイズで動作しなければなりません。可変セクタ サイズ構成(_MIN_SS < MAX_SS)

のときは、初期化後disk_ioctl()でセクタ サイズを問い合わせてくるので、それに対して正しい値を返す必要があります。 +

buffBYTE型なので、指定されるアドレスは常にワード アライメントされているとは限りません。非アライメント アドレスへの転送は、直接転送において発生することがあります。もしも、ハードウェア上の制約でそのような転送が不可能なときは、この関数内で二段転送するなどして解決するか、または別の方法で対応しなければなりません。次にいくつかの対応方法を示します(いずれか一つでOK)。

    -
  • ̊֐ʼn -
  • -
  • f_read()ɂāAZN^Ŝ܂ޓ] - ړ]Ȃ
  • -
  • f_read(fp, buff, btr, &br)ɂāA(((UINT)buff & 3) == (f_tell(fp) & 3))𖞑 - buff̃[hEACgۏ؂
  • +
  • この関数内で解決する - 推奨
  • +
  • f_read()において、セクタ全体を含む転送を避ける - 直接転送が発生しない
  • +
  • f_read(fp, buff, btr, &br)において、(((UINT)buff & 3) == (f_tell(fp) & 3))を満足させる - buffのワード アライメントが保証される
-

ʓIɁAZN^̓]v́AXg[WEfoCXɑ΂ĉ”\Ȍ}`EZN^]Ȃ΂Ȃ܂B̃VOEZN^ǂݏoɕꂽꍇAX[vbgቺ邱Ƃ܂B

+

一般的に、複数セクタの転送要求は、ストレージ デバイスに対して可能な限りマルチ セクタ転送しなければなりません。複数のシングル セクタ読み出しに分解された場合、スループットが低下することがあります。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/dstat.html b/fatfs/doc/ja/dstat.html index a74fc30..6a30944 100644 --- a/fatfs/doc/ja/dstat.html +++ b/fatfs/doc/ja/dstat.html @@ -1,7 +1,7 @@ - + @@ -13,36 +13,36 @@

disk_status

-

Xg[WEfoCX̏Ԃ擾܂B

+

ストレージ デバイスの状態を取得します。

 DSTATUS disk_status (
-  BYTE pdrv           /* [IN] hCuԍ */
+  BYTE pdrv           /* [IN] 物理ドライブ番号 */
 );
 
-

+

引数

pdrv
-
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
対象のデバイスを識別する物理ドライブ番号(0-9)が指定されます。物理ドライブが1台のときは、常に0になります。
-

߂l

-

Xg[WEfoCX̏Ԃ̃tȎgݍ킹lŕԂ܂B

+

戻り値

+

現在のストレージ デバイスの状態を次のフラグの組み合わせ値で返します。

STA_NOINIT
-
foCXĂȂƂtOBVXeEZbg⃁fBA̎OŃZbgAdisk_initialize()̐IŃNAAsŃZbg܂BfBA͔񓯊ɔCxgȂ̂ŁAߋɃfBAꍇ̃tOɔfKv܂BFatFsW[́ÃtOQƂĎ}Egsǂ𔻒f܂B
+
デバイスが初期化されていないことを示すフラグ。システム リセットやメディアの取り外し等でセットされ、disk_initialize()の正常終了でクリア、失敗でセットされます。メディア交換は非同期に発生するイベントなので、過去にメディア交換があった場合もこのフラグに反映させる必要があります。FatFsモジュールは、このフラグを参照してマウント動作が必要かどうかを判断します。
STA_NODISK
-
fBA݂ȂƂtOBfBAOĂԂ̓ZbgAZbgĂԂ̓NA܂BŒfBXNł͏ɃNA܂BȂÃtOFatFsW[ł͎QƂ܂B
+
メディアが存在しないことを示すフラグ。メディアが取り外されている間はセットされ、セットされている間はクリアされます。固定ディスクでは常にクリアします。なお、このフラグはFatFsモジュールでは参照されません。
STA_PROTECT
-
fBACgEveNgĂ邱ƂtOBCgEveNg@\T|[gȂƂ́AɃNA܂B[hEI\ł͎QƂ܂B
+
メディアがライト プロテクトされていることを示すフラグ。ライト プロテクト機能をサポートしないときは、常にクリアします。リード オンリ構成では参照されません。
-

߂

+

戻る

diff --git a/fatfs/doc/ja/dwrite.html b/fatfs/doc/ja/dwrite.html index 41cebeb..15d4ead 100644 --- a/fatfs/doc/ja/dwrite.html +++ b/fatfs/doc/ja/dwrite.html @@ -1,7 +1,7 @@ - + @@ -13,64 +13,64 @@

disk_write

-

Xg[WEfoCXɃf[^݂܂B

+

ストレージ デバイスにデータを書き込みます。

 DRESULT disk_write (
-  BYTE pdrv,        /* [IN] hCuԍ */
-  const BYTE* buff, /* [IN] ރf[^ւ̃|C^ */
-  DWORD sector,     /* [IN] ݊JnZN^ԍ */
-  UINT count        /* [IN] ރZN^ */
+  BYTE pdrv,        /* [IN] 物理ドライブ番号 */
+  const BYTE* buff, /* [IN] 書き込むデータへのポインタ */
+  DWORD sector,     /* [IN] 書き込み開始セクタ番号 */
+  UINT count        /* [IN] 書き込むセクタ数 */
 );
 
-

+

引数

pdrv
-
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
対象のデバイスを示す物理ドライブ番号(0-9)が指定されます。
buff
-
Xg[WEfoCXɏރZN^Ef[^i[ꂽoCgzw肳܂BoCǵAZN^ETCY*countƂȂ܂B
+
ストレージ デバイスに書き込むセクタ データが格納されたバイト配列が指定されます。バイト数は、セクタ サイズ*countとなります。
sector
-
݂JnZN^ԍBLBAŎw肳܂B
+
書き込みを開始するセクタ番号。32ビットLBAで指定されます。
count
-
ރZN^BFatFšĂяoł1`128͈̔͂Ɍ܂B
+
書き込むセクタ数(1~128)。
-

߂l

+

戻り値

RES_OK (0)
-
IB
+
正常終了。
RES_ERROR
-
ݒɃG[Ả񕜂ɂsB
+
書き込み中にエラーが発生し、その回復にも失敗した。
RES_WRPRT
-
fBA݋֎~ԁB
+
メディアが書き込み禁止状態。
RES_PARERR
-
p[^sB
+
パラメータが不正。
RES_NOTRDY
-
foCX”\Ԃł͂ȂiĂȂjB
+
デバイスが動作可能状態ではない(初期化されていない)。
-

-

buffɎw肳AhXɃ[hEACgĂƂ͌܂Bڍׂ́Adisk_read()̉QƂĂB

-

ʓIɁAZN^̓]v́AfoCXɑ΂ĉ”\Ȍ}`EZN^]Ȃ΂Ȃ܂B̃VOEZN^݂ɕꂽꍇAX[vbgቺ邱Ƃ܂B

-

FatFs̓fBXN֐x݋@\‚Ƃz肵Ă܂B̊֐߂ƂAfoCXݒƂLbVɏ܂ꂽȂǁAKf[^݂̏ĂKv͂܂BAbuff̃f[^́Å֐߂ƖƂȂ܂B̗݊v́Adisk_ioctl()CTRL_SYNCR}hɂčs܂B̂悤Ȓx݋@\ꂽꍇAX[vbgɌコ邱Ƃł܂B

-

AvP[V͂̊֐ĂяoĂ͂Ȃ܂BȂƁAFAT{[j󂳂”\܂B

+

解説

+

buffに指定されるアドレスは常にワード アライメントされているとは限りません。詳細は、disk_read()の解説を参照してください。

+

一般的に、複数セクタの転送要求は、デバイスに対して可能な限りマルチ セクタ転送しなければなりません。複数のシングル セクタ書き込みに分解された場合、スループットが著しく低下することがあります。

+

FatFsはディスク関数が遅延書き込み機能を持つことも想定しています。この関数から戻るとき、デバイスが書き込み中とかキャッシュに書き込まれただけなど、必ずしもメディアへの書き込みが完了している必要はありません。ただし、buffのデータは、この関数から戻ると無効となります。書き込み完了の要求は、disk_ioctl()CTRL_SYNCコマンドによって行われます。このような遅延書き込み機能が実装された場合、スループットをさらに向上させることができます。

+

アプリケーションからはこの関数を呼び出してはなりません。さもないと、FATボリュームが破壊される可能性があります。

-

Ή

-

[hEI[\(_FS_READONLY == 1)ł͂̊֐͕KvƂ܂B

+

対応情報

+

リード オンリー構成(_FS_READONLY == 1)ではこの関数は必要とされません。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/eof.html b/fatfs/doc/ja/eof.html index b1f0e1a..b9098b3 100644 --- a/fatfs/doc/ja/eof.html +++ b/fatfs/doc/ja/eof.html @@ -1,7 +1,7 @@ - + @@ -13,50 +13,50 @@

f_eof

-

[h/CgE|C^t@CI[ɒBĂ邩ǂׂ܂B.

+

リード/ライト ポインタがファイル終端に達しているかどうか調べます。.

 int f_eof (
-  FIL* fp   /* [IN] t@CEIuWFNg */
+  FIL* fp   /* [IN] ファイル オブジェクト */
 );
 
-

+

引数

fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
-

߂l

-

[h/CgE|C^t@CI[ɂǂݏof[^Ȃꍇ́A0ȊO̒lԂ܂BȊO̎0Ԃ܂B

+

戻り値

+

リード/ライト ポインタがファイル終端にあり読み出すデータがない場合は、0以外の値を返します。それ以外のときは0を返します。

-

-

f_eof֐́ArWł̓}NƂĎĂ܂B

+

解説

+

f_eof関数は、現リビジョンではマクロとして実装されています。

-#define f_eof(fp) (((fp)->fptr) == ((fp)->fsize) ? 1 : 0)
+#define f_eof(fp) ((int)((fp)->fptr == (fp)->fsize))
 
-

Ή

-

Ɏgp”\B

+

対応情報

+

常に使用可能。

-

Q

+

参照

f_open, f_lseek, FIL

-

߂

+

戻る

diff --git a/fatfs/doc/ja/error.html b/fatfs/doc/ja/error.html index ccd2f07..bb01d80 100644 --- a/fatfs/doc/ja/error.html +++ b/fatfs/doc/ja/error.html @@ -1,7 +1,7 @@ - + @@ -13,50 +13,50 @@

f_error

-

G[̗L𒲂ׂ܂B

+

エラー発生の有無を調べます。

 int f_error (
-  FIL* fp   /* [IN] t@CEIuWFNg */
+  FIL* fp   /* [IN] ファイル オブジェクト */
 );
 
-

+

引数

fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
-

߂l

-

t@C쒆̃G[ɂďfĂꍇ́A0ȊO̒lԂ܂BȊO̎0Ԃ܂B

+

戻り値

+

そのファイルにおいてハード エラーによって処理が中断されている場合は、0以外の値を返します。それ以外の時は0を返します。

-

-

f_error֐́ArWł̓}NƂĎĂ܂B

+

解説

+

f_error関数は、現リビジョンではマクロとして実装されています。

-#define f_error(fp) (((fp)->flag & FA__ERROR) ? 1 : 0)
+#define f_error(fp) ((fp)->err)
 
-

Ή

-

Ɏgp”\B

+

対応情報

+

常に使用可能。

-

Q

+

参照

f_open, FIL

-

߂

+

戻る

diff --git a/fatfs/doc/ja/fattime.html b/fatfs/doc/ja/fattime.html index 028ad53..c8bbed7 100644 --- a/fatfs/doc/ja/fattime.html +++ b/fatfs/doc/ja/fattime.html @@ -1,7 +1,7 @@ - + @@ -13,7 +13,7 @@

get_fattime

-

ݎ擾܂B

+

現在時刻を取得します。

 DWORD get_fattime (void);
 
@@ -21,37 +21,37 @@ DWORD get_fattime (void);
-

߂l

-

݂̃[JE^CDWORDlɃpbNĕԂ܂BrbgEtB[h͎Ɏ悤ɂȂ܂B

+

戻り値

+

現在のローカル タイムをDWORD値にパックして返します。ビット フィールドは次に示すようになります。

bit31:25
-
1980NN_ƂN 0..127 ŃZbgB
+
1980年を起点とした年を 0..127 でセット。
bit24:21
-
1..12 ̒lŃZbgB
+
月を 1..12 の値でセット。
bit20:16
-
1..31 ̒lŃZbgB
+
日を 1..31 の値でセット。
bit15:11
-
0..23 ̒lŃZbgB
+
時を 0..23 の値でセット。
bit10:5
-
0..59 ̒lŃZbgB
+
分を 0..59 の値でセット。
bit4:0
-
b/2 0..29 ̒lŃZbg
+
秒/2を 0..29 の値でセット
-

-

RTCT|[gȂVXełA_~[Ƃĉ炩̓tƂėLȒlԂׂłB0ȂǂԂꍇÃt@C̃^CX^v͖ɂȂ܂B

+

解説

+

RTCをサポートしないシステムでも、ダミーとして何らかの日付として有効な値を返すべきです。0などを返した場合、そのファイルのタイムスタンプは無効になります。

-

Ή

-

[hEI[\(_FS_READONLY == 1)ł͂̊֐͕KvƂ܂B

+

対応情報

+

リード オンリー構成(_FS_READONLY == 1)ではこの関数は必要とされません。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/fdisk.html b/fatfs/doc/ja/fdisk.html index 27f78b3..53b6cbb 100644 --- a/fatfs/doc/ja/fdisk.html +++ b/fatfs/doc/ja/fdisk.html @@ -1,7 +1,7 @@ - + @@ -13,30 +13,30 @@

f_fdisk

-

hCu𕪊܂B

+

物理ドライブを分割します。

 FRESULT f_fdisk (
-  BYTE  pdrv,         /* [IN] hCuԍ */
-  const DWORD part[], /* [IN] }bvEe[u */
-  void* work          /* [-] [NGA */
+  BYTE  pdrv,         /* [IN] 物理ドライブ番号 */
+  const DWORD part[], /* [IN] 区画マップ テーブル */
+  void* work          /* [-] ワークエリア */
 );
 
-

+

引数

pdrv
-
hCũhCuԍw肵܂B
+
分割する物理ドライブのドライブ番号を指定します。
part[]
-
}bvEe[uւ̃|C^w肵܂B
+
区画マップ テーブルへのポインタを指定します。
work
-
[NGAւ̃|C^w肵܂BTCY_MAX_SSoCgKvłB
+
ワークエリアへのポインタを指定します。サイズは_MAX_SSバイト必要です。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -47,41 +47,41 @@ FRESULT f_fdisk (

-

-

̊֐́Aw肳ꂽhCuMBRɋe[u쐬܂B敪͈ʓIFDISK`ōs߁Aő4‚̊{쐬邱Ƃł܂Bgɂ͑ΉĂ܂B}bve[upart[]ɂ̓hCuǂ̂悤ɕ邩w肵ēn܂B̔z4‚̍ڂ琬A擪̍ڂ1Ԗڂ́AŌ̍ڂ4Ԗڂ̋̃TCY܂Bl100ȉ̏ꍇAhCȗeʂɑ΂銄p[ZgPʂŎw肵܂B100𒴂l̏ꍇ̓ZN^̒ڎwɂȂ܂B

+

説明

+

この関数は、指定された物理ドライブのMBRに区画テーブルを作成します。区画分けは一般的なFDISK形式で行うため、最大4つの基本区画を作成することができます。拡張区画には対応していません。区画マップテーブルpart[]にはドライブをどのように分割するか指定して渡します。この配列は4つの項目から成り、先頭の項目が1番目の、最後の項目が4番目の区画のサイズを示します。値が100以下の場合、ドライブの総容量に対する割合をパーセント単位で指定します。100を超える値の場合はセクタ数の直接指定になります。

-

Ή

-

_FS_READOLNY == 0 _USE_MKFS == 1 _MULTI_PARTITION == 1 ̂Ƃgp”\łB

+

対応情報

+

_FS_READOLNY == 0_USE_MKFS == 1_MULTI_PARTITION == 1 のとき使用可能です。

-

gp

+

使用例

-    /* [U`̃{[Ǘe[u (_MULTI_PARTITION == 1 ̂ƂKv) */
+    /* ユーザ定義のボリューム管理テーブル (_MULTI_PARTITION == 1 のとき必要) */
 
     PARTITION VolToPart[] = {
-        {0, 1},    /* _hCu 0 ==> hCu 0, 1 */
-        {0, 2},    /* _hCu 1 ==> hCu 0, 2 */
-        {1, 0}     /* _hCu 2 ==> hCu 1, o */
+        {0, 1},    /* 論理ドライブ 0 ==> 物理ドライブ 0, 第1区画 */
+        {0, 2},    /* 論理ドライブ 1 ==> 物理ドライブ 0, 第2区画 */
+        {1, 0}     /* 論理ドライブ 2 ==> 物理ドライブ 1, 自動検出 */
     };
 
-    /* VhCu(0)̏ */
+    /* 新しい物理ドライブ(0)の初期化 */
 
     FATFS fs;
-    DWORD plist[] = {50, 50, 0, 0};  /* 2 */
+    DWORD plist[] = {50, 50, 0, 0};  /* 2分割 */
     BYTE work[_MAX_SS];
 
-    f_fdisk(0, plist, work);  /* hCu 0 ̕ */
+    f_fdisk(0, plist, work);  /* 物理ドライブ 0 の分割 */
 
     f_mount(&fs "0:", 0);
-    f_mkfs("0:", 0, 0);       /* _hCu 0 ̃tH[}bg. ͖.  */
+    f_mkfs("0:", 0, 0);       /* 論理ドライブ 0 のフォーマット. 第二引数は無視される.  */
     f_mount(0, "0:", 0);
 
     f_mount(&fs, "1:", 0);
-    f_mkfs("1:", 0, 0);       /* _hCu 0 ̃tH[}bg. ͖.  */
+    f_mkfs("1:", 0, 0);       /* 論理ドライブ 0 のフォーマット. 第二引数は無視される.  */
     f_mount(0, "1:", 0);
 
 
diff --git a/fatfs/doc/ja/filename.html b/fatfs/doc/ja/filename.html index c57d7aa..524566c 100644 --- a/fatfs/doc/ja/filename.html +++ b/fatfs/doc/ja/filename.html @@ -12,28 +12,28 @@

パス名のフォーマット

-

ファイル・ディレクトリ名

+

ファイル ディレクトリ名

FatFsモジュールでのファイル、ディレクトリ、ドライブの指定方法はDOS/Windows APIとほぼ同じです。パス名のフォーマットは次の通りです。

"[論理ドライブ番号:][/]ディレクトリ名/ファイル名"
-

FatFsモジュールは長いファイル名(LFN)および8.3形式ファイル名(SFN)に対応しています。LFNは、(_USE_LFN > 0)のとき使用可能になります。ディレクトリ・セパレータにはDOS/Windows APIと同じく'/''\'を使用します。連続したセパレータは無視され1個として扱われます。唯一の違いは、論理ドライブの指定だけです。論理ドライブ番号は、'0''9'の一文字の数字とコロンで指定し、省略した場合はデフォルト・ドライブ(0またはカレント・ドライブ)が選択されます。

+

FatFsモジュールは長いファイル名(LFN)および8.3形式ファイル名(SFN)に対応しています。LFNは、(_USE_LFN > 0)のとき使用可能になります。ディレクトリ セパレータにはDOS/Windows APIと同じく'/''\'を使用します。連続したセパレータは無視され1個として扱われます。唯一の違いは、論理ドライブの指定だけです。論理ドライブ番号は、'0''9'の一文字の数字とコロンで指定し、省略した場合はデフォルト ドライブ(0またはカレント ドライブ)が選択されます。

ヌル文字や制御文字('\0''\x1F')は、パス名の終端として認識されます。パス名に先行あるいは中に含まれるスペースは、LFN構成では名前の一部として有効ですが、非LFN構成ではスペースはパス名の終端として認識されます。

-

標準構成(_FS_RPATH == 0)のときは、全てのオブジェクトがルート・ディレクトリから辿る絶対パスで指定されます。OS指向なカレント・ディレクトリという概念は無く、またドット・ディレクトリ("."や"..")は使用できません。パス名先頭のセパレータは無視されます。デフォルト・ドライブ番号は常に0になります。

-

相対パスを有効(_FS_RPATH == 1)にしたときは、先行するセパレータの有無によって検索開始ディレクトリが変わり、セパレータがある場合はルート・ディレクトリから、無い場合はf_chdir()で設定されるカレント・ディレクトリからになります。またパス名にドット・ディレクトリが使用できます。デフォルト・ドライブ番号はf_chdrive()で設定された値となります。

+

標準構成(_FS_RPATH == 0)のときは、全てのオブジェクトがルート ディレクトリから辿る絶対パスで指定されます。OS指向なカレント ディレクトリという概念は無く、またドット ディレクトリ("."や"..")は使用できません。パス名先頭のセパレータは無視されます。デフォルト ドライブ番号は常に0になります。

+

相対パスを有効(_FS_RPATH == 1)にしたときは、先行するセパレータの有無によって検索開始ディレクトリが変わり、セパレータがある場合はルート ディレクトリから、無い場合はf_chdir()で設定されるカレント ディレクトリからになります。またパス名にドット ディレクトリが使用できます。デフォルト ドライブ番号はf_chdrive()で設定された値となります。

- - - - - - + + + + + + - - - + + +
パス名の例_FS_RPATH == 0_FS_RPATH == 1
file.txtドライブ0のルート・ディレクトリ下のファイルカレント・ドライブのカレント・ディレクトリ下のファイル
/file.txtドライブ0のルート・ディレクトリ下のファイルカレント・ドライブのルート・ディレクトリ下のファイル
ドライブ0のルート・ディレクトリカレント・ドライブのカレント・ディレクトリ
2:ドライブ2のルート・ディレクトリドライブ2のカレント・ディレクトリ
2:file1.txtドライブ2のルート・ディレクトリ下のファイルドライブ2のカレント・ディレクトリ下のファイル
2:/ドライブ2のルート・ディレクトリドライブ2のルート・ディレクトリ
file.txtドライブ0のルート ディレクトリ下のファイルカレント ドライブのカレント ディレクトリ下のファイル
/file.txtドライブ0のルート ディレクトリ下のファイルカレント ドライブのルート ディレクトリ下のファイル
ドライブ0のルート ディレクトリカレント ドライブのカレント ディレクトリ
2:ドライブ2のルート ディレクトリドライブ2のカレント ディレクトリ
2:file1.txtドライブ2のルート ディレクトリ下のファイルドライブ2のカレント ディレクトリ下のファイル
2:/ドライブ2のルート ディレクトリドライブ2のルート ディレクトリ
../file.txt無効親ディレクトリ下のファイル
.無効このディレクトリ
..無効カレント・ディレクトリの親ディレクトリ
dir1/..無効カレント・ディレクトリ
/..無効ルート・ディレクトリ(その上は辿れない)
..無効カレント ディレクトリの親ディレクトリ
dir1/..無効カレント ディレクトリ
/..無効ルート ディレクトリ(その上は辿れない)
-

また、_STR_VOLUME_IDオプションを有効にすることでドライブ番号の識別には数字のほか、任意の文字列を使用することも可能になります。

+

また、_STR_VOLUME_IDオプションを有効にすることでドライブ番号の識別には数字のほか、"sd:file1.txt""ram:swapfile.dat"のように、任意の文字列を使用することも可能になります。


@@ -62,13 +62,13 @@ PARTITION VolToPart[] = { {0, 3}, /* 論理ドライブ 2 ==> 物理ドライブ 0, 第3区画 */ {1, 0} /* 論理ドライブ 3 ==> 物理ドライブ 1, 自動検出 */ }; - -論理ドライブと物理ドライブの関係 +
論理ドライブと物理ドライブの関係

複数区画指定を使用する場合、次の点に注意しなければなりません。

    -
  • マウント可能な区画は基本区画のみで、拡張区画内には対応しない。
  • 複数のマウントされた区画を持つ物理ドライブは、非リムーバブルでなければならず、システム動作中のメディア交換は禁止。
  • +
  • 基本区画のみマウント可能で、拡張区画内の区画には対応しない。
  • +
  • Windowsは、リムーバブル ドライブでは複数区画をサポートせず、先頭区画のみ認識する。
diff --git a/fatfs/doc/ja/forward.html b/fatfs/doc/ja/forward.html index ffb2e60..e9212ce 100644 --- a/fatfs/doc/ja/forward.html +++ b/fatfs/doc/ja/forward.html @@ -1,7 +1,7 @@ - + @@ -13,34 +13,34 @@

f_forward

-

t@Cf[^ǂݏoAMXg[ɒړ]܂B

+

ファイルからデータを読み出し、送信ストリームに直接転送します。

 FRESULT f_forward (
-  FIL* fp,                         /* [IN] t@CEIuWFNg\ */
-  UINT (*func)(const BYTE*,UINT),  /* [IN] f[^]֐ */
-  UINT btf,                        /* [IN] ]oCg */
-  UINT* bf                         /* [OUT] ]ꂽoCg */
+  FIL* fp,                         /* [IN] ファイル オブジェクト構造体 */
+  UINT (*func)(const BYTE*,UINT),  /* [IN] データ転送関数 */
+  UINT btf,                        /* [IN] 転送するバイト数 */
+  UINT* bf                         /* [OUT] 転送されたバイト数 */
 );
 
-

+

引数

fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
func
-
f[^n[U`֐ւ̃|C^w肵܂B̊֐̎dl̓TvQƂĂB
+
データを渡すユーザ定義関数へのポインタを指定します。この関数の仕様はサンプルを参照してください。
btf
-
]oCg(0`UINT̍ől)w肵܂B
+
転送するバイト数(0~UINTの最大値)を指定します。
bf
-
ۂɓ]ꂽoCgi[ϐw|C^w肵܂B
+
実際に転送されたバイト数を格納する変数を指すポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -54,40 +54,40 @@ FRESULT f_forward (

-

-

t@C̃f[^obt@ɓǂݏoɑMXg[ɒړ]܂BAvP[VŃf[^Eobt@KvƂȂ̂ŁǍꂽ‹ŗLłB[h/CgE|C^͓]ꂽoCgi݂܂Bw肳ꂽoCg̓]Ƀt@C̏I[ɒBꍇ⑗MXg[rW[ɂȂꍇA*bfbtfȂ܂B

+

解説

+

ファイルのデータをバッファに読み出さずに送信ストリームに直接転送します。アプリケーション側でデータ バッファを必要としないので、メモリの限られた環境で有効です。リード/ライト ポインタは転送されたバイト数だけ進みます。指定されたバイト数の転送中にファイルの終端に達した場合や送信ストリームがビジーになった場合、*bfbtfよりも小さくなります。

-

Ή

-

_USE_FORWARD == 1ŁA_FS_TINY == 1̂ƂɎgp”\łB

+

対応情報

+

_USE_FORWARD == 1で、且つ_FS_TINY == 1のときに使用可能です。

-

gpiI[fBIĐj

+

使用例(オーディオ再生)

 /*-----------------------------------------------------------------------*/
-/* f_forward֐Ă΂f[^M֐̗                           */
+/* f_forward関数から呼ばれるデータ送信関数の例                           */
 /*-----------------------------------------------------------------------*/
 
-UINT out_stream (   /* ߂l: ]ꂽoCg܂̓Xg[̏ */
-    const BYTE *p,  /* ]f[^w|C^ */
-    UINT btf        /* >0: ]s(oCg). 0: Xg[̏Ԃ𒲂ׂ */
+UINT out_stream (   /* 戻り値: 転送されたバイト数またはストリームの状態 */
+    const BYTE *p,  /* 転送するデータを指すポインタ */
+    UINT btf        /* >0: 転送を行う(バイト数). 0: ストリームの状態を調べる */
 )
 {
     UINT cnt = 0;
 
 
-    if (btf == 0) {     /* ZXv */
-        /* Xg[̏ԂԂ (0: rW[, 1: fB) */
-        /* UAfBԂA]vŏȂƂ1oCg */
-        /* ]Ȃ f_forward֐ FR_INT_ERR ƂȂB */
+    if (btf == 0) {     /* センス要求 */
+        /* ストリームの状態を返す (0: ビジー, 1: レディ) */
+        /* 一旦、レディを返したら、続く転送要求で少なくとも1バイトは */
+        /* 転送されないと f_forward関数は FR_INT_ERR となる。 */
         if (FIFO_READY) cnt = 1;
     }
-    else {              /* ]v */
-        do {    /* SẴoCg]邩AXg[rW[ɂȂ܂ŌJԂ */
+    else {              /* 転送要求 */
+        do {    /* 全てのバイトを転送するか、ストリームがビジーになるまで繰り返す */
             FIFO_PORT = *p++;
             cnt++;
         } while (cnt < btf && FIFO_READY);
@@ -98,31 +98,31 @@ UINT out_stream (   /* 
 
 
 /*-----------------------------------------------------------------------*/
-/* f_forward֐̎gp                                                 */
+/* f_forward関数の使用例                                                 */
 /*-----------------------------------------------------------------------*/
 
 FRESULT play_file (
-    char *fn        /* ĐI[fBIEt@Cw|C^ */
+    char *fn        /* 再生するオーディオ ファイル名を指すポインタ */
 )
 {
     FRESULT rc;
     FIL fil;
     UINT dmy;
 
-    /* t@Cǂݏo[hŊJ */
+    /* ファイルを読み出しモードで開く */
     rc = f_open(&fil, fn, FA_READ);
     if (rc) return rc;
 
-    /* SẴf[^]邩G[܂ő */
+    /* 全てのデータが転送されるかエラーが発生するまで続ける */
     while (rc == FR_OK && fil.fptr < fil.fsize) {
 
-        /* ق̏... */
+        /* ほかの処理... */
 
-        /* I܂͗vɉăf[^Xg[ɑo */
+        /* 定期的または要求に応じてデータをストリームに送出する */
         rc = f_forward(&fil, out_stream, 1000, &dmy);
     }
 
-    /* t@C‚Ė߂ */
+    /* ファイルを閉じて戻る */
     f_close(&fil);
     return rc;
 }
@@ -131,10 +131,10 @@ FRESULT play_file (
 
 
 
-

Q

+

参照

f_open, fgets, f_write, f_close, FIL

-

߂

+

戻る

diff --git a/fatfs/doc/ja/getcwd.html b/fatfs/doc/ja/getcwd.html index b48f3fc..24e4844 100644 --- a/fatfs/doc/ja/getcwd.html +++ b/fatfs/doc/ja/getcwd.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

f_getcwd

-

JgEfBNg𓾂܂B

+

カレント ディレクトリを得ます。

 FRESULT f_getcwd (
-  TCHAR* buff, /* [OUT] obt@ */
-  UINT len     /* [IN] obt@ETCY */
+  TCHAR* buff, /* [OUT] バッファ */
+  UINT len     /* [IN] バッファ サイズ */
 );
 
-

+

引数

buff
-
JgEfBNg̃pXi[obt@
+
カレント ディレクトリのパス名文字列を格納するバッファ
len
-
TCHARPʂ̃obt@ETCY
+
TCHAR単位のバッファ サイズ
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -49,22 +49,22 @@ FRESULT f_getcwd (

-

-

JgEhCũJgEfBNg̃tEpX擾܂B_VOLUMES2ȏ̂Ƃ́A_hCuԍ̕tꂽpXƂȂ܂B

+

解説

+

カレント ドライブのカレント ディレクトリのフル パス文字列を取得します。_VOLUMESが2以上のときは、論理ドライブ番号の付加されたパス名となります。

-

Ή

-

_FS_RPATH == 2̂Ƃgp”\łB

+

対応情報

+

_FS_RPATH == 2のとき使用可能です。

-

Q

+

参照

f_chdrive, f_chdir

-

߂

+

戻る

diff --git a/fatfs/doc/ja/getfree.html b/fatfs/doc/ja/getfree.html index 4de40de..8b99c76 100644 --- a/fatfs/doc/ja/getfree.html +++ b/fatfs/doc/ja/getfree.html @@ -1,7 +1,7 @@ - + @@ -13,31 +13,31 @@

f_getfree

-

{[̋󂫗̈̃TCY擾܂B

+

ボリューム上の空き領域のサイズを取得します。

 FRESULT f_getfree (
-  const TCHAR* path,  /* [IN] ΏۃhCuw肵܂ */
-  DWORD* nclst,       /* [OUT] 󂫃NX^i[ϐւ̃|C^ */
-  FATFS** fatfs       /* [OUT] t@CEVXeEIuWFNgw|C^ւ̃|C^ */
+  const TCHAR* path,  /* [IN] 対象ドライブを指定します */
+  DWORD* nclst,       /* [OUT] 空きクラスタ数を格納する変数へのポインタ */
+  FATFS** fatfs       /* [OUT] ファイル システム オブジェクトを指すポインタへのポインタ */
 );
 
-

+

引数

path
-
ׂΏۂ̘_hCupXk'\0'I[̕ւ̃|C^w肵܂Bk̓JgEhCuӖ܂B
+
調べる対象の論理ドライブを示すパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。ヌル文字列はカレント ドライブを意味します。
nclst
-
󂫃NX^i[DWORD^ϐւ̃|C^w肵܂B
+
空きクラスタ数を格納するDWORD型変数へのポインタを指定します。
fatfs
-
ΏۃhCũt@CEVXeEIuWFNgw|C^Ԃ܂B
+
対象ドライブのファイル システム オブジェクトを指すポインタが返されます。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -52,33 +52,33 @@ FRESULT f_getfree (

-

-

_hCű󂫗̈̃TCYNX^PʂŎ擾܂BԂꂽt@CEVXeEIuWFNgcsizeoNX^̃ZN^Ă̂ŁAɃZN^Pʂ̋󂫃TCYvZł܂BFAT32{[ɂẮAFSINFȌ񂪎ۂ̋󂫃NX^ƓĂȂꍇAsmȒlԂ”\܂B̖邽߁A_FS_NOFSINFOIvVŃ}Eg͕̏KtFATXL悤ɍ\邱Ƃł܂B

+

解説

+

論理ドライブ上の空き領域のサイズをクラスタ単位で取得します。返されたファイル システム オブジェクトのcsizeメンバがクラスタあたりのセクタ数を示しているので、これを元にセクタ単位の空きサイズが計算できます。FAT32ボリュームにおいては、FSINFOの情報が実際の空きクラスタ数と同期していない場合、不正確な値を返す可能性があります。この問題を避けるため、_FS_NOFSINFOオプションでマウント後の初回は必ずフルFATスキャンをするように構成することもできます。

-

Ή

-

_FS_READONLY == 0ŁA_FS_MINIMIZE == 0̂Ƃgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_FS_MINIMIZE == 0のとき使用可能です。

-

gp

+

使用例

     FATFS *fs;
     DWORD fre_clust, fre_sect, tot_sect;
 
 
-    /* hCu1̃{[Ƌ󂫃NX^𓾂 */
+    /* ドライブ1のボリューム情報と空きクラスタ数を得る */
     res = f_getfree("1:", &fre_clust, &fs);
     if (res) die(res);
 
-    /* SZN^Ƌ󂫃ZN^vZ */
+    /* 全セクタ数と空きセクタ数を計算 */
     tot_sect = (fs->n_fatent - 2) * fs->csize;
     fre_sect = fre_clust * fs->csize;
 
-    /* {[Ŝ̃TCYƋ󂫂̃TCY\ (512oCg/ZN^Ɖ) */
+    /* ボリューム全体のサイズと空きのサイズを表示 (512バイト/セクタと仮定) */
     printf("%10lu KiB total drive space.\n%10lu KiB available.\n",
            tot_sect / 2, fre_sect / 2);
 
@@ -86,10 +86,10 @@ FRESULT f_getfree (
-

Q

+

参照

FATFS
-

߂

+

戻る

diff --git a/fatfs/doc/ja/getlabel.html b/fatfs/doc/ja/getlabel.html index 957d212..bfcad0d 100644 --- a/fatfs/doc/ja/getlabel.html +++ b/fatfs/doc/ja/getlabel.html @@ -1,7 +1,7 @@ - + @@ -13,31 +13,31 @@

f_getlabel

-

{[Ex擾܂B

+

ボリューム ラベルを取得します。

 FRESULT f_getlabel (
-  const TCHAR* path,  /* [IN] ΏۃhCu */
-  TCHAR* label,       /* [OUT] {[i[obt@ */
-  DWORD* vsn          /* [OUT] {[EVAԍi[ϐ */
+  const TCHAR* path,  /* [IN] 対象ドライブ */
+  TCHAR* label,       /* [OUT] ボリューム名を格納するバッファ */
+  DWORD* vsn          /* [OUT] ボリューム シリアル番号を格納する変数 */
 );
 
-

+

引数

path
-
ΏۂƂȂ_hCupXk'\0'I[̕ւ̃|C^w肵܂Bk̏ꍇ́AftHgEhCuw肵ƂɂȂ܂B
+
対象となる論理ドライブのパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。ヌル文字列の場合は、デフォルト ドライブを指定したことになります。
label
-
{[i[zւ̃|C^w肵܂BȂƂ12vf̃TCYKvłB{[Ȃꍇ̓k񂪕Ԃ܂B̏񂪕svȂƂ̓kE|C^w肵ĂB
+
ボリューム名を格納する配列へのポインタを指定します。少なくとも12要素のサイズが必要です。ボリューム名がない場合はヌル文字列が返されます。この情報が不要なときはヌル ポインタを指定してください。
vsn
-
{[EVAԍi[DWORD^ϐւ̃|C^w肵܂B̏񂪕svȂƂ̓kE|C^w肵ĂB
+
ボリューム シリアル番号を格納するDWORD型変数へのポインタを指定します。この情報が不要なときはヌル ポインタを指定してください。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -52,31 +52,31 @@ FRESULT f_getlabel (

-

Ή

-

_USE_LABEL == 1̂ƂɎgp”\łB

+

対応情報

+

_USE_LABEL == 1のときに使用可能です。

-

gp

+

使用例

     char str[12];
 
-    /* ftHgEhCũ{[𓾂 */
+    /* デフォルト ドライブのボリューム名を得る */
     f_getlabel("", str, 0);
 
-    /* hCu2̃{[𓾂 */
+    /* ドライブ2のボリューム名を得る */
     f_getlabel("2:", str, 0);
 
-

Q

+

参照

f_setlabel
-

߂

+

戻る

diff --git a/fatfs/doc/ja/gets.html b/fatfs/doc/ja/gets.html index 2babef0..74e0b22 100644 --- a/fatfs/doc/ja/gets.html +++ b/fatfs/doc/ja/gets.html @@ -1,7 +1,7 @@ - + @@ -13,53 +13,53 @@

f_gets

-

t@C當ǂݏo܂B

+

ファイルから文字列を読み出します。

 TCHAR* f_gets (
-  TCHAR* buff, /* [OUT] obt@ */
-  int len,     /* [IN] obt@̃TCY */
-  FIL* fp      /* [IN] t@CEIuWFNg */
+  TCHAR* buff, /* [OUT] バッファ */
+  int len,     /* [IN] バッファのサイズ */
+  FIL* fp      /* [IN] ファイル オブジェクト */
 );
 
-

+

引数

buff
-
ǂݏoobt@w|C^w肵܂B
+
文字列を読み出すバッファを指すポインタを指定します。
len
-
obt@̃TCYvfŎw肵܂B
+
バッファのサイズを要素数で指定します。
fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
-

߂l

-

֐buffԂ܂B

+

戻り値

+

関数が成功するとbuffが返されます。

-

-

̊֐f_read()̃bp[֐łBǂݏóAŏ'\n'ǂݍނAt@CI[ɒB邩Alen - 1ǂݏo܂ő܂Bǂݍ܂ꂽ̏I[ɂ'\0't܂BɃt@CI[1ǂݍ܂ȂƂA܂͉炩̃G[Ƃ͊֐͎skE|C^Ԃ܂Bt@CI[G[f_eof(),f_error()}NŒׂ܂B

-

Unicode API\(_LFN_UNICODE == 1)IĂƂ́AbuffUTF-16ɂȂ܂At@C̃GR[h́A_STRF_ENCODEIvVőIł܂BȊO͖̎ϊ(1oCg/1)œǂݏo܂B

+

解説

+

この関数はf_read()のラッパー関数です。読み出し動作は、最初の'\n'を読み込むか、ファイル終端に達するか、len - 1文字を読み出すまで続きます。読み込まれた文字列の終端には'\0'が付加されます。既にファイル終端で1文字も読み込まれなかったとき、または何らかのエラーが発生したときは関数は失敗しヌル ポインタを返します。ファイル終端かエラーかはf_eof(),f_error()マクロで調べられます。

+

Unicode API構成(_LFN_UNICODE == 1)が選択されているときは、buffはUTF-16文字列になりますが、ファイル上のエンコードは、_STRF_ENCODEオプションで選択できます。それ以外の時は無変換(1バイト/1文字)で読み出します。

-

Ή

-

_USE_STRFUNC1܂2̂Ƃgp”\łB2̂Ƃ́At@CɊ܂܂'\r'菜ăobt@ɓǂݍ܂܂B

+

対応情報

+

_USE_STRFUNCが1または2のとき使用可能です。2のときは、ファイルに含まれる'\r'が取り除かれてバッファに読み込まれます。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/lseek.html b/fatfs/doc/ja/lseek.html index 5578852..88e1ab2 100644 --- a/fatfs/doc/ja/lseek.html +++ b/fatfs/doc/ja/lseek.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

f_lseek

-

t@C̃[h/CgE|C^ړ܂B܂AV[N@\gpɂCLMT(q)̍쐬ɂgp܂B

+

ファイルのリード/ライト ポインタを移動します。また、高速シーク機能使用時にはCLMT(後述)の作成にも使用します。

 FRESULT f_lseek (
-  FIL* fp,    /* [IN] t@CEIuWFNg\̂ւ̃|C^ */
-  DWORD ofs   /* [IN] ړItZbg */
+  FIL* fp,    /* [IN] ファイル オブジェクト構造体へのポインタ */
+  DWORD ofs   /* [IN] 移動先オフセット */
 );
 
-

+

引数

fp
-
ΏۂƂȂt@CEIuWFNg\̂ւ̃|C^w肵܂B
+
対象となるファイル オブジェクト構造体へのポインタを指定します。
ofs
-
ړ̃ItZbg([h/CgE|C^)lBt@C擪̃ItZbgoCgPʂŎw肵܂B
+
移動先のオフセット(リード/ライト ポインタ)値。ファイル先頭からのオフセットをバイト単位で指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -48,82 +48,82 @@ FRESULT f_lseek (

-

-

t@C̃[h/CgE|C^(ɓǂݏoE݂oCg̃ItZbg)ړ܂BItZbǧ_̓t@C擪łB݃[hŃt@CETCY傫Ȓlw肷ƁA܂Ńt@CETCYgAgꂽ̃f[^͖`ƂȂ܂Bf[^xɏ݂Ƃ́A\߂̊֐ŕKvȃTCY܂Ńt@CETCYgĂƗǂł傤Bf_lseek()IƂ́A[h/CgE|C^ړ`FbNׂłB[h/CgE|C^w菬Ƃ́Ǎl܂B

+

解説

+

ファイルのリード/ライト ポインタ(次に読み出し・書き込みされるバイトのオフセット)を移動します。オフセットの原点はファイル先頭です。書き込みモードでファイル サイズより大きな値を指定すると、そこまでファイル サイズが拡張され、拡張された部分のデータは未定義となります。データを遅延無く高速に書き込みたいときは、予めこの関数で必要なサイズまでファイル サイズを拡張しておくと良いでしょう。f_lseek()が正常終了したあとは、リード/ライト ポインタが正しく移動したかチェックするべきです。リード/ライト ポインタが指定より小さいときは、次の原因が考えられます。

    -
  • 񏑂݃[h܂͍V[NE[ĥ߁At@CETCYŃNbvꂽB
  • -
  • t@CgɃfBXNtɂȂB
  • +
  • 非書き込みモードまたは高速シーク モードのため、ファイル サイズでクリップされた。
  • +
  • ファイル拡張中にディスクが満杯になった。
-

_USE_FASTSEEK1ŁAƒt@CEIuWFNgcltbloNULLȊO(f_open()NULLɐݒ肳)̂ƂAV[NE[hɂȂ܂B̓t@C̃NX^zu(CLMT)ɕێĂƂɂAFATɃANZX邱ƂȂV[N⃍OEV[Nɍs@\łBV[NE[h́Af_read()/f_wtite()̓ɂKp܂BV[NE[hłf_wtite()/f_lseek()ɂt@CETCY̊g͂ł܂B

-

V[NsOɁACLMT쐬ĂKv܂B쐬ɂ́A܂CLMTi[obt@(DWORD^z)Acltbloɂ̃|C^Zbg܂BāAz̐擪vfɂ̔z̃TCY(vf)Af_lseek()ofsCREATE_LINKMAPw肵ČĂяo܂B֐CLMT쐬Aȍ~f_read()/f_write()/f_lseek()łFATւ̃ANZX͔܂BFR_NOT_ENOUGH_COREŎsƂ͔zTCYsŁA擪vfɂ͎ۂɕKvƂȂvfԂ܂BKvȗvf́A(t@C̕ + 1) * 2 łBƂ΁At@C5‚̃tOgɕfĂƂɕKvȗvf́A12ƂȂ܂B

+

_USE_FASTSEEKが1で、且つファイル オブジェクトのcltblメンバがNULL以外(f_open()でNULLに設定される)のとき、高速シーク モードになります。これはファイルのクラスタ配置情報(CLMT)をメモリ上に保持しておくことにより、FATにアクセスすることなく後方シークやロング シークを高速に行う機能です。高速シーク モードは、f_read()/f_wtite()の動作にも適用されます。高速シーク モードではf_wtite()/f_lseek()によるファイル サイズの拡張はできません。

+

高速シーク動作を行う前に、CLMTを作成しておく必要があります。これを作成するには、まずCLMT格納バッファ(DWORD型配列)を準備し、cltblメンバにそのポインタをセットします。そして、配列の先頭要素にその配列のサイズ(要素数)を入れ、f_lseek()ofsCREATE_LINKMAPを指定して呼び出します。関数が成功するとCLMTが作成され、以降のf_read()/f_write()/f_lseek()ではFATへのアクセスは発生しません。FR_NOT_ENOUGH_COREで失敗したときは配列サイズが不足で、先頭要素には実際に必要となる要素数が返されます。必要な要素数は、(ファイルの分割数 + 1) * 2 です。たとえば、ファイルが5つのフラグメントに分断されているときに必要な要素数は、12となります。

-

Ή

-

_FS_MINIMIZE < 3̂Ƃgp”\łB

+

対応情報

+

_FS_MINIMIZE < 3のとき使用可能です。

-

gp

+

使用例

-    /* t@CJ */
+    /* ファイルを開く */
     fp = malloc(sizeof (FIL));
     res = f_open(fp, "file.dat", FA_READ|FA_WRITE);
     if (res) ...
 
-    /* t@CEItZbg5000ֈړ */
+    /* ファイル オフセット5000へ移動 */
     res = f_lseek(fp, 5000);
 
-    /* t@CI[ֈړ(t@CNjL̏) */
+    /* ファイル終端へ移動(ファイル追記の準備) */
     res = f_lseek(fp, f_size(fp));
 
-    /* 3000oCgi߂ */
+    /* 3000バイト進める */
     res = f_lseek(fp, f_tell(fp) + 3000);
 
-    /* 2000oCg߂ (bvAEhɒ) */
+    /* 2000バイト戻す (ラップアラウンドに注意) */
     res = f_lseek(fp, f_tell(fp) - 2000);
 
-/* NX^s蓖 (Xg[~OECg̃obt@EI[o[h~) */
+/* クラスタ先行割り当て (ストリーミング ライト時のバッファ オーバーラン防止) */
 
-    res = f_open(fp, "record.wav", FA_CREATE_NEW | FA_WRITE);    /* t@C쐬 */
+    res = f_open(fp, "record.wav", FA_CREATE_NEW | FA_WRITE);    /* ファイル作成 */
 
-    res = f_lseek(fp, MAX_SIZE);             /* \ȃNX^̐s蓖 */
-    if (res || f_tell(fp) != PRE_SIZE) ...   /* t@Cgꂽ`FbN */
+    res = f_lseek(fp, MAX_SIZE);             /* 十分なクラスタの先行割り当て */
+    if (res || f_tell(fp) != PRE_SIZE) ...   /* 正しくファイルが拡張されたかチェック */
 
-    res = f_lseek(fp, DATA_START);           /* f[^EXg[̋L^(AP[VfBC) */
+    res = f_lseek(fp, DATA_START);           /* データ ストリームの記録(アロケーションディレイ無し) */
     ...
 
-    res = f_truncate(fp);                    /* sv̈̐؂̂ */
-    res = f_lseek(fp, 0);                    /* wb_̋L^ */
+    res = f_truncate(fp);                    /* 不要領域の切り捨て */
+    res = f_lseek(fp, 0);                    /* ヘッダの記録 */
     ...
 
     res = f_close(fp);
 
-/* V[N@\g */
+/* 高速シーク機能を使う */
 
-    DWORD clmt[SZ_TBL];                    /* NE}bvEe[ui[obt@ */
+    DWORD clmt[SZ_TBL];                    /* リンク マップ テーブル格納バッファ */
 
-    res = f_lseek(fp, ofs1);               /* ʏV[N (I[vAcltblNULLɏ) */
+    res = f_lseek(fp, ofs1);               /* 通常シーク (オープン時、cltblはNULLに初期化される) */
 
-    fp->cltbl = clmt;                      /* V[N@\̗L */
-    clmt[0] = SZ_TBL;                      /* 擪vfɔzvfZbg */
-    res = f_lseek(fp, CREATE_LINKMAP);     /* CLMT̍쐬 */
+    fp->cltbl = clmt;                      /* 高速シーク機能の有効化 */
+    clmt[0] = SZ_TBL;                      /* 先頭要素に配列要素数をセット */
+    res = f_lseek(fp, CREATE_LINKMAP);     /* CLMTの作成 */
     ...
 
-    res = f_lseek(fp, ofs2);               /* ȍ~Af_read/f_write/f_lseekFATANZX͔Ȃ */
+    res = f_lseek(fp, ofs2);               /* 以降、f_read/f_write/f_lseekでFATアクセスは発生しない */
 
-

Q

+

参照

f_open, FIL

-

߂

+

戻る

diff --git a/fatfs/doc/ja/mkdir.html b/fatfs/doc/ja/mkdir.html index ef107d3..63da707 100644 --- a/fatfs/doc/ja/mkdir.html +++ b/fatfs/doc/ja/mkdir.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_mkdir

-

fBNg쐬܂B

+

ディレクトリを作成します。

 FRESULT f_mkdir (
-  const TCHAR* path /* [IN] 쐬fBNgւ̃|C^ */
+  const TCHAR* path /* [IN] 作成するディレクトリ名へのポインタ */
 );
 
-

+

引数

path
-
쐬fBNgpXk'\0'I[̕ւ̃|C^w肵܂B
+
作成するディレクトリのパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -52,19 +52,19 @@ FRESULT f_mkdir (

-

-

̃fBNg쐬܂B

+

解説

+

空のディレクトリを作成します。

-

Ή

-

_FS_READONLY == 0ŁA_FS_MINIMIZE == 0̂Ƃgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_FS_MINIMIZE == 0のとき使用可能です。

-

gp

+

使用例

     res = f_mkdir("sub1");
     if (res) die(res);
@@ -75,6 +75,6 @@ FRESULT f_mkdir (
 
-

߂

+

戻る

diff --git a/fatfs/doc/ja/mkfs.html b/fatfs/doc/ja/mkfs.html index 7e09696..19b4341 100644 --- a/fatfs/doc/ja/mkfs.html +++ b/fatfs/doc/ja/mkfs.html @@ -1,7 +1,7 @@ - + @@ -13,30 +13,30 @@

f_mkfs

-

_hCuFAT{[쐬(tH[}bg)܂B

+

論理ドライブ上にFATボリュームを作成(フォーマット)します。

 FRESULT f_mkfs (
-  const TCHAR* path, /* [IN] _hCuԍ */
-  BYTE  sfd,         /* [IN] 쐬@ */
-  UINT  au           /* [IN] NXE^TCY */
+  const TCHAR* path, /* [IN] 論理ドライブ番号 */
+  BYTE  sfd,         /* [IN] 区画作成方法 */
+  UINT  au           /* [IN] クラス タサイズ */
 );
 
-

+

引数

path
-
tH[}bgΏۂ̘_hCupXk'\0'I[̕ւ̃|C^w肵܂BhCuԍ܂܂Ȃꍇ́AJgEhCuӖ܂B
+
フォーマット対象の論理ドライブを示すパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。ドライブ番号を含まない場合は、カレント ドライブを意味します。
sfd
-
p[e[V`B(0(FDISK) ܂ 1(SFD))
+
パーテーション形式。(0(FDISK) または 1(SFD))
au
-
NX^ETCYoCgPʂŎw肵܂Bl͑ΏۃhCũZN^ETCYn{(n = 1`128ŁA2̗ݏ)łȂ΂Ȃ܂B0Ȃǂ̖lw肵ꍇA{[̃TCYɉftHg̃NX^ETCYI܂B
+
クラスタ サイズをバイト数またはセクタ数で指定します。値が1~128の範囲場合は、セクタ数を示します。値が_MIN_SS以上の場合は、バイト数を示します。無効値(0または2の累乗でない値など)を指定した場合、ボリュームのサイズに応じたデフォルトのクラスタ サイズが自動選択されます。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -48,26 +48,64 @@ FRESULT f_mkfs (

-

-

hCuFAT{[쐬܂BFDISK`w肳ꂽꍇ́AhCuŜ߂{(p[e[V)쐬A̒FAT{[쐬܂BSFD`ł́AFAT{[hCu̐擪ZN^x^ō쐬܂B

-

tH[}bg_hCu}`Ep[e[V@\(_MULTI_PARTITION)ɂē̋(1`4)ɌѕtĂꍇ́A̋̒FAT{[쐬܂Bsfd͖A܂Ή镨hCu͂ɐ旧Af_fdisk()܂͑̃c[œK؂ɋݒ肳ĂKv܂B

-

p[e[V`ɂ́AFDISK`SFD`̓ʂ肠܂BFDISK`́An[hfBXNAMMCASDCACFCAU DiskȂǂŕWIɎgp܂BFDISK`ł͈̕hCuɈ‚܂͕̋쐬邱Ƃł܂BǗMBR(hCu̐擪ZN^)ɋL^܂BSFD`͒Pɉ̕sȂ`ŁA{[͕hCu̐擪ZN^Jn܂BSFD`́Atbs[EfBXNA}CNhCuAwfBXNAт̑X[p[Etbs[EfBAŕWIɎgpĂ܂B

-

FAT^Cv(FAT12/FAT16/FAT32)́Ã{[NX^ɂĂ̂݌錈܂[FATdl]ɂȂĂāAȊO̗v͂܂BāAǂFAT^CvɂȂ邩̓{[ETCYƃNX^ETCYɈˑ܂BNX^ETCY͑傫قǐ\オ܂B

-

NX^FAT^Cv̋Eɋ߂ȂƂ́AFR_MKFS_ABORTEDŊ֐s”\܂B

+

説明

+

物理ドライブ上にFATボリュームを作成します。FDISK形式が指定された場合は、物理ドライブ全体を占める基本区画(パーテーション)が作成され、その中にFATボリュームが作成されます。SFD形式では、FATボリュームが物理ドライブの先頭セクタからベタで作成されます。

+

フォーマットする論理ドライブがマルチ パーテーション機能(_MULTI_PARTITION)によって特定の区画(1~4)に結び付けられている場合は、その区画の中にFATボリュームが作成されます。sfdは無視され、また対応する物理ドライブはこれに先立ち、f_fdisk()または他のツールで適切に区画設定されている必要があります。

+

パーテーション形式には、FDISK形式とSFD形式の二通りあります。FDISK形式は、ハードディスク、MMC、SDC、CFC、U Diskなどで標準的に使用されます。FDISK形式では一台の物理ドライブ上に一つまたは複数の区画を作成することができます。区画管理情報はMBR(物理ドライブの先頭セクタ)に記録されます。SFD形式は単に何の分割も行わない形式で、ボリュームは物理ドライブの先頭セクタから開始します。SFD形式は、フロッピー ディスク、マイクロドライブ、光学ディスク、およびその他スーパー フロッピー メディアで標準的に使用されています。

+

FATタイプ(FAT12/FAT16/FAT32)は、そのボリューム上のクラスタ数によってのみ決定される決まり[FAT仕様書より]になっていて、それ以外の要因はありません。したがって、どのFATタイプになるかはボリューム サイズとクラスタ サイズに依存します。クラスタ サイズは大きくするほど性能が上がります。

+

クラスタ数がFATタイプの境界に近くなるときは、FR_MKFS_ABORTEDで関数が失敗する可能性があります。

-

Ή

-

_FS_READONLY == 0ŁA_USE_MKFS == 1̂Ƃgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_USE_MKFS == 1のとき使用可能です。

+
+ + +
+

使用例

+
+/* Format the default drive */
+int main (void)
+{
+    FATFS fs;      /* File system object (volume work area) */
+    FIL fil;       /* File object */
+    FRESULT res;   /* API result code */
+    UINT bw;       /* Bytes written */
+
+
+    /* Register work area */
+    f_mount(&fs, "", 0);
+
+    /* Create FAT volume with default cluster size */
+    res = f_mkfs("", 0, 0);
+    if (res) ...
+
+    /* Create a file as new */
+    res = f_open(&fil, "hello.txt", FA_CREATE_NEW | FA_WRITE);
+    if (res) ...
+
+    /* Write a message */
+    f_write(&fil, "Hello, World!\r\n", 15, &bw);
+    if (bw != 15) ...
+
+    /* Close the file */
+    f_close(&fil);
+
+    /* Unregister work area */
+    f_mount(0, "", 0);
+
+
-

߂

+ +

戻る

diff --git a/fatfs/doc/ja/mount.html b/fatfs/doc/ja/mount.html index c6bc9f1..d465edb 100644 --- a/fatfs/doc/ja/mount.html +++ b/fatfs/doc/ja/mount.html @@ -1,7 +1,7 @@ - + @@ -13,30 +13,30 @@

f_mount

-

_hCuɃt@CEVXeEIuWFNgo^E܂B

+

論理ドライブにファイル システム オブジェクトを登録・抹消します。

 FRESULT f_mount (
-  FATFS*       fs,     /* [IN] t@CEVXeEIuWFNg */
-  const TCHAR* path,   /* [IN] _hCuԍ */
-  BYTE         opt     /* [IN] IvV */
+  FATFS*       fs,     /* [IN] ファイル システム オブジェクト */
+  const TCHAR* path,   /* [IN] 論理ドライブ番号 */
+  BYTE         opt     /* [IN] オプション */
 );
 
-

+

引数

fs
-
o^t@CEVXeEIuWFNgւ̃|C^B
+
登録するファイル システム オブジェクトへのポインタ。
path
-
ΏۂƂȂ_hCupXk'\0'I[̕ւ̃|C^w肵܂BhCuԍ܂܂Ȃꍇ́AftHgEhCuw肵ƂɂȂ܂B
+
対象となる論理ドライブのパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。パス名にドライブ番号が含まれない場合は、デフォルト ドライブを指定したことになります。
opt
-
t@CEVXeEIuWFNg̓o^ƓɃ}Egsǂw肷tOBo^̂Ƃ͈Ӗ܂B
+
ファイル システム オブジェクトの登録と同時にマウント動作を行うかどうかを指定するフラグ。登録抹消のときは意味を持ちません。
-

߂l

+

戻り値

FR_OK, FR_INVALID_DRIVE, @@ -48,35 +48,35 @@ FRESULT f_mount (

-

-

FatFsW[ł́Aꂼ̘_hCut@CEVXeEIuWFNgƂ[NEGAKvłB̊֐͘_hCuɃt@CEVXeEIuWFNgo^薕肵܂B炩̃t@C֐gpOɁÅ֐ł̘_hCũt@CEVXeEIuWFNg^ĂȂ΂Ȃ܂BfsɃkE|C^w肷ƁA̘_hCũt@CEVXeEIuWFNg̓o^͖邾łBo^ꂽt@CEVXeEIuWFNg͉̃ł܂BΏۂ̘_hCuɊJĂt@CfBNgꍇA͑SĖɂȂ܂B̊֐͎̓̂悤ȏɍs܂B

+

解説

+

FatFsモジュールでは、それぞれの論理ドライブにファイル システム オブジェクトというワーク エリアが必要です。この関数は論理ドライブにファイル システム オブジェクトを登録したり抹消したりします。何らかのファイル関数を使用する前に、この関数でその論理ドライブのファイル システム オブジェクトを与えておかなければなりません。fsにヌル ポインタを指定すると、その論理ドライブのファイル システム オブジェクトの登録は抹消されるだけです。登録抹消されたファイル システム オブジェクトのメモリは解放できます。操作対象の論理ドライブ上に開かれたままのファイルやディレクトリがあった場合、それらに対して作成された構造体は全て無効になります。この関数の内部処理は次のような順に行われます。

    -
  1. Ώۂ̘_hCupath瓾B
  2. -
  3. ɓo^Ăt@CEVXeEIuWFNg̓NAAo^B
  4. -
  5. fsLȃ|C^̂Ƃ́Ãt@CEVXeEIuWFNgNAo^B
  6. -
  7. }Eg삪w肳ĂƂ́AsB
  8. +
  9. 対象の論理ドライブをpathから得る。
  10. +
  11. 既に登録されているファイル システム オブジェクトはクリアし、登録を解除する。
  12. +
  13. fsが有効なポインタのときは、そのファイル システム オブジェクトをクリアし登録する。
  14. +
  15. マウント動作が指定されているときは、それを実行する。
-

opt0w肷ƁA}Eg(hCȕAFAT{[̌ABPB͂t@CEVXeEIuWFNg)͍sꂸA֐͕hCȕԂɊւ炸ɐ܂B֐ł͉ʃCւ̃ANZX͔Aw肳ꂽt@CEVXeEIuWFNgNA()ÃAhXzɓo^邾łBPɓo^ς݂̃t@CEVXeEIuWFNgNAړIɂg܂BāAă{[ւ̃ANZXsꂽƂ̂ꂩł^̏ꍇ́Aۂ̃}Eg삪s܂B

+

optに0を指定すると、マウント動作(物理ドライブの初期化、FATボリュームの検索、BPBを解析しファイル システム オブジェクトを初期化)は行われず、関数は物理ドライブの状態に関わらず常に成功します。関数内では下位レイヤへのアクセスは発生せず、指定されたファイル システム オブジェクトをクリア(無効化)し、そのアドレスを内部配列に登録するだけです。単に登録済みのファイル システム オブジェクトをクリアする目的にも使えます。実際のマウント動作は、ボリュームへのアクセス(パス名を渡すもの全て)が行われたときに、次のうちいずれかの条件が真の場合に行われます。

    -
  • t@CEVXeEIuWFNgNA()(f_mount()̎sɂ)
  • -
  • hCu(VXeEZbg⃁fBǍɂ)
  • +
  • ファイル システム オブジェクトがクリア(無効)状態(f_mount()の実行による)
  • +
  • 物理ドライブが未初期化状態(システム リセットやメディアの交換による)
-

opt1w肷ƁAo^ɑă}Eg삪s܂B}EgɎsƑΉG[Ԃ܂Ao^͗LȂ̂ő{[ւ̃ANZXōĂу}Eg삪s܂B

-

ʃC̎チfBǍoT|[gȂ(disk_status()ɔfȂ)Ƃ́AAvP[V̓fBǍケ̊֐Ńt@CEVXeEIuWFNg𖾎IɃNAčă}Egɍs悤ɂKv܂B

+

optに1を指定すると、ファイル システムオブジェクトの登録に続きマウント動作が行われます。メディアが無いなどの理由でマウント動作に失敗すると対応するエラーを返しファイル システム オブジェクト無効状態のままになりますが、登録自体は有効なので続いてボリュームへのアクセスがあれば再びマウント動作が実行されます。

+

下位レイヤの実装上メディア交換の検出がサポートされない(disk_status()に反映されない)ときは、アプリケーションはメディア交換の後この関数でファイル システム オブジェクトを明示的にクリアし、マウント動作が正常に行えるようにする必要があります。

-

Ή

-

SĂ̍\Ŏgp”\łB

+

対応情報

+

全ての構成で使用可能です。

-

Q

+

参照

f_open, FATFS

-

߂

+

戻る

diff --git a/fatfs/doc/ja/open.html b/fatfs/doc/ja/open.html index a4c4a18..c308398 100644 --- a/fatfs/doc/ja/open.html +++ b/fatfs/doc/ja/open.html @@ -1,7 +1,7 @@ - + @@ -13,33 +13,33 @@

f_open

-

t@CI[v܂͍쐬܂B

+

ファイルをオープンまたは作成します。

 FRESULT f_open (
-  FIL* fp,           /* [OUT] ̃t@CEIuWFNg\̂ւ̃|C^ */
-  const TCHAR* path, /* [IN] t@Cւ̃|C^ */
-  BYTE mode          /* [IN] [htO */
+  FIL* fp,           /* [OUT] 空のファイル オブジェクト構造体へのポインタ */
+  const TCHAR* path, /* [IN] ファイル名へのポインタ */
+  BYTE mode          /* [IN] モードフラグ */
 );
 
-

+

引数

fp
-
V쐬t@CEIuWFNg\̂ւ̃|C^w肵܂Bȍ~Ãt@C‚܂ł̃t@CEIuWFNggpăt@C܂B
+
新しく作成するファイル オブジェクト構造体へのポインタを指定します。以降、そのファイルを閉じるまでこのファイル オブジェクトを使用してファイル操作をします。
path
-
Jt@Ct@Ck'\0'I[̕ւ̃|C^w肵܂B
+
開くファイルのファイル名を示すヌル文字'\0'終端の文字列へのポインタを指定します。
mode
-
t@C̃ANZX@I[v@߂tOłB̃p[^ɂ͎̑gݍ킹w肵܂B
+
ファイルのアクセス方法やオープン方法を決めるフラグです。このパラメータには次の組み合わせを指定します。
- - - - - - - + + + + + + +
lӖ
FA_READǂݏo[hŊJ܂BǂݏꍇFA_WRITEƋɎw肵܂B
FA_WRITE݃[hŊJ܂BǂݏꍇFA_READƋɎw肵܂B
FA_OPEN_EXISTING̃t@CJ܂Bt@CƂ̓G[ɂȂ܂B(ftHg)
FA_OPEN_ALWAYS̃t@CJ܂Bt@CƂ̓t@C쐬܂BNjL̏ꍇ́A̕@ŃI[vAf_lseek()Ńt@C̍ŌɈړĂB
FA_CREATE_NEWt@C쐬܂B̃t@Cꍇ́AFR_EXISTŎs܂B
FA_CREATE_ALWAYSt@C쐬܂B̃t@Cꍇ́ATCY0ɂĂJ܂B
意味
FA_READ読み出しモードで開きます。読み書きする場合はFA_WRITEと共に指定します。
FA_WRITE書き込みモードで開きます。読み書きする場合はFA_READと共に指定します。
FA_OPEN_EXISTING既存のファイルを開きます。ファイルが無いときはエラーになります。(デフォルト)
FA_OPEN_ALWAYS既存のファイルを開きます。ファイルが無いときはファイルを作成します。追記の場合は、この方法でオープンした後、f_lseek()でファイルの最後尾に移動してください。
FA_CREATE_NEWファイルを作成します。同名のファイルがある場合は、FR_EXISTで失敗します。
FA_CREATE_ALWAYSファイルを作成します。同名のファイルがある場合は、サイズを0にしてから開きます。
@@ -47,7 +47,7 @@ FRESULT f_open (
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -72,86 +72,86 @@ FRESULT f_open (

-

-

̃t@CJAVt@C쐬܂B֐ƃt@CEIuWFNg쐬Aȍ~̃t@Cɑ΂ANZXɎgp܂Bt@C‚Ƃ́Af_close()gp܂B炩̕ύXsꂽt@Č㐳‚ȂꍇÃt@Cjꍇ܂B

-

ɊJĂt@CJKvꍇ́AdANZXQƂĂBA‚̃t@Cɑ΂鏑݃[h܂ޏdI[v͏ɋ֎~łB

-

t@CEANZXJnOɁAf_mount()gĂꂼ̘_hCuɃ[NEGA(t@CEVXeEIuWFNg)^Kv܂B̏̌A̘_hCuɑ΂đSẴt@C֐g悤ɂȂ܂B

+

解説

+

既存のファイルを開いたり、新しいファイルを作成します。関数が成功するとファイル オブジェクトが作成され、以降そのファイルに対するアクセスに使用します。ファイルを閉じるときは、f_close()を使用します。何らかの変更が行われたファイルがその後正しく閉じられなかった場合、そのファイルが破損する場合があります。

+

既に開かれているファイルを開く必要がある場合は、多重アクセス制御を参照してください。しかし、一つのファイルに対する書き込みモードを含む重複オープンは常に禁止です。

+

ファイル アクセスを開始する前に、f_mount()を使ってそれぞれの論理ドライブにワーク エリア(ファイル システム オブジェクト)を与える必要があります。この初期化の後、その論理ドライブに対して全てのファイル関数が使えるようになります。

-

Ή

-

SĂ̍\Ŏgp”\łB_FS_READONLY == 1̂Ƃ́AFA_WRITE, FA_CREATE_ALWAYS, FA_CREATE_NEW, FA_OPEN_ALWAYS̊etO̓T|[g܂B

+

対応情報

+

全ての構成で使用可能です。_FS_READONLY == 1のときは、FA_WRITE, FA_CREATE_ALWAYS, FA_CREATE_NEW, FA_OPEN_ALWAYSの各フラグはサポートされません。

-

gp

+

使用例

-/* eLXgt@Cǂݏoĕ\ */
+/* テキストファイルを読み出して表示 */
 
-FATFS FatFs;   /* _hCũ[NEGA(t@CEVXeEIuWFNg) */
+FATFS FatFs;   /* 論理ドライブのワーク エリア(ファイル システム オブジェクト) */
 
 int main (void)
 {
-    FIL fil;       /* t@CEIuWFNg */
-    char line[82]; /* sobt@ */
-    FRESULT fr;    /* ߂l */
+    FIL fil;       /* ファイル オブジェクト */
+    char line[82]; /* 行バッファ */
+    FRESULT fr;    /* 戻り値 */
 
 
-    /* ftHgEhCuɃ[NGA^ */
+    /* デフォルト ドライブにワークエリアを与える */
     f_mount(&FatFs, "", 0);
 
-    /* eLXgEt@CJ */
+    /* テキスト ファイルを開く */
     fr = f_open(&fil, "message.txt", FA_READ);
     if (fr) return (int)fr;
 
-    /* 1s“ǂݏoĕ\ */
+    /* 1行ずつ読み出して表示 */
     while (f_gets(line, sizeof line, &fil))
         printf(line);
 
-    /* t@C‚ */
+    /* ファイルを閉じる */
     f_close(&fil);
 
     return 0;
 }
 
-/* hCu1̃t@C "file.bin" hCu0փRs[ */
+/* ドライブ1のファイル "file.bin" をドライブ0へコピー */
 
 int main (void)
 {
-    FATFS fs[2];         /* _hCũ[NGA(t@CEVXeEIuWFNg) */
-    FIL fsrc, fdst;      /* t@CEIuWFNg */
+    FATFS fs[2];         /* 論理ドライブのワークエリア(ファイル システム オブジェクト) */
+    FIL fsrc, fdst;      /* ファイル オブジェクト */
     BYTE buffer[4096];   /* File copy buffer */
     FRESULT fr;          /* FatFs function common result code */
     UINT br, bw;         /* File R/W count */
 
-    /* hCu0,1Ƀ[NEGA^ */
+    /* ドライブ0,1にワーク エリアを与える */
     f_mount(&fs[0], "0:", 0);
     f_mount(&fs[1], "1:", 0);
 
-    /* hCu1̃Rs[t@CJ */
+    /* ドライブ1のコピー元ファイルを開く */
     res = f_open(&fsrc, "1:file.dat", FA_OPEN_EXISTING | FA_READ);
     if (fr) return (int)fr;
 
-    /* hCu0ɃRs[t@C쐬 */
+    /* ドライブ0にコピー先ファイルを作成する */
     res = f_open(&fdst, "0:file.dat", FA_CREATE_ALWAYS | FA_WRITE);
     if (fr) return (int)fr;
 
-    /* Rs[Rs[Ƀf[^] */
+    /* コピー元からコピー先にデータ転送する */
     for (;;) {
-        res = f_read(&fsrc, buffer, sizeof buffer, &br); /* Rs[炩ǂݏo */
-        if (res || br == 0) break;   /* G[t@CI[ */
-        res = f_write(&fdst, buffer, br, &bw);           /* Rs[ɏ */
-        if (res || bw < br) break;   /* G[fBXNt */
+        res = f_read(&fsrc, buffer, sizeof buffer, &br); /* コピー元からから読み出す */
+        if (res || br == 0) break;   /* エラーかファイル終端 */
+        res = f_write(&fdst, buffer, br, &bw);           /* それをコピー先に書き込む */
+        if (res || bw < br) break;   /* エラーかディスク満杯 */
     }
 
-    /* SẴt@C‚ */
+    /* 全てのファイルを閉じる */
     f_close(&fsrc);
     f_close(&fdst);
 
-    /* [NEGAJ */
+    /* ワーク エリアを開放する */
     f_mount(NULL, "0:", 0);
     f_mount(NULL, "1:", 0);
 
@@ -162,10 +162,10 @@ int main (void)
 
 
 
-

Q

+

参照

f_read, f_write, f_close, FIL, FATFS

-

߂

+

戻る

diff --git a/fatfs/doc/ja/opendir.html b/fatfs/doc/ja/opendir.html index 9309160..ae40984 100644 --- a/fatfs/doc/ja/opendir.html +++ b/fatfs/doc/ja/opendir.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

f_opendir

-

fBNgJ܂B

+

ディレクトリを開きます。

 FRESULT f_opendir (
-  DIR* dp,           /* [OUT] fBNgEuWFNg\̂ւ̃|C^ */
-  const TCHAR* path  /* [IN] fBNgւ̃|C^ */
+  DIR* dp,           /* [OUT] ディレクトリ ブジェクト構造体へのポインタ */
+  const TCHAR* path  /* [IN] ディレクトリ名へのポインタ */
 );
 
-

+

引数

dp
-
̃fBNgEIuWFNg\̂ւ̃|C^w肵܂B
+
空のディレクトリ オブジェクト構造体へのポインタを指定します。
path
-
I[vfBNgpXk'\0'I[̕ւ̃|C^w肵܂B
+
オープンするディレクトリのパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -55,22 +55,22 @@ FRESULT f_opendir (

-

-

fBNgJ܂BIA쐬ꂽDIR\̂gẴfBNg̍ڂǂݏo܂B

+

解説

+

ディレクトリを開きます。正常終了したら、作成されたDIR構造体を使ってこのディレクトリの項目を順次読み出せます。

-

Ή

-

_FS_MINIMIZE <= 1̂Ƃgp”\ɂȂ܂B

+

対応情報

+

_FS_MINIMIZE <= 1のとき使用可能になります。

-

Q

+

参照

f_readdir, f_closedir, DIR

-

߂

+

戻る

diff --git a/fatfs/doc/ja/printf.html b/fatfs/doc/ja/printf.html index b5c22e0..4de1da2 100644 --- a/fatfs/doc/ja/printf.html +++ b/fatfs/doc/ja/printf.html @@ -1,7 +1,7 @@ - + @@ -13,56 +13,56 @@

f_printf

-

t@Cɏ݂܂B

+

ファイルに書式化文字列を書き込みます。

 int f_printf (
-  FIL* fp,           /* [IN] t@CEIuWFNg */
-  const TCHAR* fmt,  /* [IN] 䕶 */
+  FIL* fp,           /* [IN] ファイル オブジェクト */
+  const TCHAR* fmt,  /* [IN] 書式制御文字列 */
   ...
 );
 
-

+

引数

fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
fmt
-
k'\0'I[̏䕶w|C^w肵܂Bk͏܂܂B
+
ヌル文字'\0'終端の書式制御文字列を指すポインタを指定します。ヌル文字は書き込まれません。
...
-
IvV̈B
+
オプションの引数。
-

߂l

-

񂪐ɏ܂ƁA܂ꂽԂ܂BfBXNt܂͂̑G[ɂ萳ɏ܂ȂƂ́A֐͎sEOF (-1)Ԃ܂B

+

戻り値

+

文字列が正常に書き込まれると、書き込まれた文字数が返されます。ディスクが満杯またはその他エラーにより正常に書き込まれなかったときは、関数は失敗しEOF (-1)が返されます。

-

-

̊֐́Af_putc()f_puts()̃bp[֐łB@\CWCũTuZbgƂȂĂāA䕶͎Ɏ̂gp”\łB

+

解説

+

この関数は、f_putc()およびf_puts()のラッパー関数です。書式制御機能はC標準ライブラリのサブセットとなっていて、書式制御文字は次に示すものが使用可能です。

    -
  • ^Cv: c C s S d D u U x X b B
  • -
  • xw: l L
  • -
  • tO: 0 -
  • +
  • タイプ: c C s S d D u U x X b B
  • +
  • 精度指定: l L
  • +
  • フラグ: 0 -
-

Ή

-

_FS_READONLY == 0ŁA_USE_STRFUNC1܂2̂Ƃgp”\ɂȂ܂B2̎́Ao͂Ɋ܂܂'\n''\r'+'\n'ɓWJăt@Cɏ܂܂B

-

APIUnicodeI(_LFN_UNICODE1)ĂƂ́AfmtUnicodeɂȂ܂At@C̃GR[h́A_STRF_ENCODEIvVőIł܂BȊO͖̎ϊ(1oCg/1)ŏ݂܂B

+

対応情報

+

_FS_READONLY == 0で、且つ_USE_STRFUNCが1または2のとき使用可能になります。2の時は、出力に含まれる'\n''\r'+'\n'に展開されてファイルに書き込まれます。

+

APIにUnicodeが選択(_LFN_UNICODEが1)されているときは、fmtはUnicode文字列になりますが、ファイル上のエンコードは、_STRF_ENCODEオプションで選択できます。それ以外の時は無変換(1バイト/1文字)で書き込みます。

-

gp

+

使用例

     f_printf(&fil, "%d", 1234);            /* "1234" */
     f_printf(&fil, "%6d,%3d%%", -200, 5);  /* "  -200,  5%" */
@@ -78,16 +78,16 @@ int f_printf (
     f_printf(&fil, "%8s", "abc");          /* "     abc" */
     f_printf(&fil, "%-8s", "abc");         /* "abc     " */
     f_printf(&fil, "%c", 'a');             /* "a" */
-    f_printf(&fil, "%f", 10.0);            /* _͖T|[g */
+    f_printf(&fil, "%f", 10.0);            /* 浮動小数点は未サポート */
 
-

Q

+

参照

f_open, f_putc, f_puts, f_gets, f_close, FIL

-

߂

+

戻る

diff --git a/fatfs/doc/ja/putc.html b/fatfs/doc/ja/putc.html index 724f4c2..6b80b1a 100644 --- a/fatfs/doc/ja/putc.html +++ b/fatfs/doc/ja/putc.html @@ -1,7 +1,7 @@ - + @@ -13,50 +13,50 @@

f_putc

-

t@Cɕ݂܂B

+

ファイルに文字を書き込みます。

 int f_putc (
-  TCHAR chr,  /* [IN] ޕ */
-  FIL* fp     /* [IN] t@CEIuWFNg */
+  TCHAR chr,  /* [IN] 書き込む文字 */
+  FIL* fp     /* [IN] ファイル オブジェクト */
 );
 
-

+

引数

chr
-
ޕw肵܂B
+
書き込む文字を指定します。
fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
-

߂l

-

ɏ܂Ə񂾕Ԃ܂BfBXNt܂̓G[ɂ菑܂ȂƂEOF (-1)Ԃ܂B

-

APIUnicodeI(_LFN_UNICODE1)ĂƂ́AchrUTF-16ɂȂ܂At@C̃GR[h́A_STRF_ENCODEIvVőIł܂BȊO͖̎ϊ(1oCg/1)ŏ݂܂B

+

戻り値

+

文字が正常に書き込まれると書き込んだ文字数が返されます。ディスクが満杯またはエラーにより書き込まれなかったときはEOF (-1)が返されます。

+

APIにUnicodeが選択(_LFN_UNICODEが1)されているときは、chrはUTF-16文字になりますが、ファイル上のエンコードは、_STRF_ENCODEオプションで選択できます。それ以外の時は無変換(1バイト/1文字)で書き込みます。

-

-

1t@Cɏ݂܂B̊֐f_write()̃bp[֐łB

+

解説

+

1文字をファイルに書き込みます。この関数はf_write()のラッパー関数です。

-

Ή

-

_FS_READONLY == 0ŁA_USE_STRFUNC 1܂ 2̂Ƃgp”\łB2w肷ƁA'\n''\r'+'\n'ɓWJăt@Cɏ܂܂B

+

対応情報

+

_FS_READONLY == 0で、且つ_USE_STRFUNCが 1または 2のとき使用可能です。2を指定すると、'\n''\r'+'\n'に展開されてファイルに書き込まれます。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/puts.html b/fatfs/doc/ja/puts.html index d815311..4f3167c 100644 --- a/fatfs/doc/ja/puts.html +++ b/fatfs/doc/ja/puts.html @@ -1,7 +1,7 @@ - + @@ -13,50 +13,50 @@

f_puts

-

t@Cɕ݂܂B

+

ファイルに文字列を書き込みます。

 int f_puts (
-  const TCHAR* str,  /* [IN] ޕ */
-  FIL* fp            /* [IN] t@CEIuWFNg */
+  const TCHAR* str,  /* [IN] 書き込む文字列 */
+  FIL* fp            /* [IN] ファイル オブジェクト */
 );
 
-

+

引数

str
-
ރk'\0'I[̕w|C^w肵܂Bk͏܂܂B
+
書き込むヌル文字'\0'終端の文字列を指すポインタを指定します。ヌル文字は書き込まれません。
fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
-

߂l

-

񂪐ɏ܂ƁA܂ꂽԂ܂BfBXNt܂̓G[ɂ菑݂fꂽƂEOF (-1)Ԃ܂B

-

APIUnicodeI(_LFN_UNICODE1)ĂƂ́AstrUTF-16ɂȂ܂At@C̃GR[h́A_STRF_ENCODEIvVőIł܂BȊO͖̎ϊ(1oCg/1)ŏ݂܂B

+

戻り値

+

文字列が正常に書き込まれると、書き込まれた文字数が返されます。ディスクが満杯またはエラーにより書き込みが中断されたときはEOF (-1)が返されます。

+

APIにUnicodeが選択(_LFN_UNICODEが1)されているときは、strはUTF-16文字列になりますが、ファイル上のエンコードは、_STRF_ENCODEオプションで選択できます。それ以外の時は無変換(1バイト/1文字)で書き込みます。

-

-

t@Cɏ݂܂B̊֐f_write()̃bp[֐łB

+

解説

+

文字列をファイルに書き込みます。この関数はf_write()のラッパー関数です。

-

Ή

-

_FS_READONLY == 0ŁA_USE_STRFUNC1܂2̂Ƃgp”\łB2w肷ƁAɊ܂܂'\n''\r'+'\n'ɓWJăt@Cɏ܂܂B

+

対応情報

+

_FS_READONLY == 0で、且つ_USE_STRFUNCが1または2のとき使用可能です。2を指定すると、文字列に含まれる'\n''\r'+'\n'に展開されてファイルに書き込まれます。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/rc.html b/fatfs/doc/ja/rc.html index 8bcfb24..45a4738 100644 --- a/fatfs/doc/ja/rc.html +++ b/fatfs/doc/ja/rc.html @@ -11,20 +11,20 @@

ファイル関数の戻り値

-

FatFsのAPIでは、一部の関数を除き結果に応じた共通のリザルト・コード(FRESULT型(enum))を返します。関数が成功した場合は0を返します。失敗した場合は0以外の値を返し、値はエラーの種類を示します。

+

FatFsのAPIでは、一部の関数を除き結果に応じた共通のリザルト コード(FRESULT型(enum))を返します。関数が成功した場合は0を返します。失敗した場合は0以外の値を返し、値はエラーの種類を示します。

FR_OK (0)
関数は成功した。
FR_DISK_ERR
-
下位レイヤ(disk_read(), disk_write(), disk_ioctl()関数)で回復不能なエラーが発生した。
※開かれたファイルの操作においてこのエラーが発生すると、そのファイル・オブジェクトはアボート状態となり、クローズ以外のの操作ができなくなります。
+
下位レイヤ(disk_read(), disk_write(), disk_ioctl()関数)で回復不能なエラーが発生した。
※開かれたファイルの操作においてこのエラーが発生すると、そのファイル オブジェクトはアボート状態となり、クローズ以外のの操作ができなくなります。
FR_INT_ERR
内部処理の健全性に異常が検出された。原因としては次のようなことが考えられます。
  • ボリューム上のFAT構造にエラーがある。
  • -
  • スタック不足や不正なメモリ操作等によるワーク・エリアの破壊。多くはこれが原因。
  • +
  • スタック不足や不正なメモリ操作等によるワーク エリアの破壊。多くはこれが原因。
-※開かれたファイルの操作においてこのエラーが発生すると、そのファイル・オブジェクトはアボート状態となり、クローズ以外の操作ができなくなります。
+※開かれたファイルの操作においてこのエラーが発生すると、そのファイル オブジェクトはアボート状態となり、クローズ以外の操作ができなくなります。
FR_NOT_READY
物理ドライブが動作可能な状態にない。または、ドライブの初期化に失敗した。
FR_NO_FILE
@@ -38,22 +38,22 @@
  • 書き込み禁止属性(AM_RDO)を持つファイルを書き込みモードで開こうとした。
  • 書き込み禁止属性を持つファイルやディレクトリを削除しようとした。
  • -
  • 空でないディレクトリまたはカレント・ディレクトリを削除しようとした。
  • +
  • 空でないディレクトリまたはカレント ディレクトリを削除しようとした。
  • FA_READフラグを付けずに開いたファイルに対して読み出しを行った。
  • FA_WRITEフラグを付けずに開いたファイルに対して書き込みまたはそれに類する操作を行った。
  • -
  • ボリュームまたはディレクトリ・テーブルが満杯でファイルやディレクトリを作成できなかった。
  • +
  • ボリュームまたはディレクトリ テーブルが満杯でファイルやディレクトリを作成できなかった。
FR_EXIST
新しく作成しようとしたオブジェクトと同じ名前のオブジェクトが既に存在する。
FR_INVALID_OBJECT
-
指定されたファイル・オブジェクトやディレクトリ・オブジェクトが無効(オープンされていない、既に閉じられた、破損しているなど)、またはヌル・ポインタが渡された。また、開かれたままのオブジェクトは、それの属するボリュームのマウント動作により無効となります。
+
指定されたファイル オブジェクトやディレクトリ オブジェクトが無効(オープンされていない、既に閉じられた、破損しているなど)、またはヌル ポインタが渡された。また、開かれたままのオブジェクトは、それの属するボリュームのマウント動作により無効となります。
FR_WRITE_PROTECTED
物理ドライブが書き込み禁止状態のとき、書き込みを伴う操作を行おうとした。
FR_INVALID_DRIVE
-
パス名中に指定されたドライブ番号が無効、またはパス名にヌル・ポインタが渡された。(関連オプション: _VOLUMES)
+
パス名中に指定されたドライブ番号が無効、またはパス名にヌル ポインタが渡された。(関連オプション: _VOLUMES)
FR_NOT_ENABLED
-
そのボリュームの操作に必要なワーク・エリア(ファイル・システム・オブジェクト構造体)が与えられていない。
+
そのボリュームの操作に必要なワーク エリア(ファイル システム オブジェクト構造体)が与えられていない。
FR_NO_FILESYSTEM
物理ドライブ上に有効なFATボリュームが見つからなかった。
FR_MKFS_ABORTED
diff --git a/fatfs/doc/ja/read.html b/fatfs/doc/ja/read.html index 04ef8b3..c7f2d25 100644 --- a/fatfs/doc/ja/read.html +++ b/fatfs/doc/ja/read.html @@ -1,7 +1,7 @@ - + @@ -13,34 +13,34 @@

f_read

-

t@Cf[^ǂݏo܂B

+

ファイルからデータを読み出します。

 FRESULT f_read (
-  FIL* fp,     /* [IN] t@CEIuWFNg\ */
-  void* buff,  /* [OUT] ǂݏof[^i[obt@ */
-  UINT btr,    /* [IN] ǂݏooCg */
-  UINT* br     /* [OUT] ǂݏoꂽoCg */
+  FIL* fp,     /* [IN] ファイル オブジェクト構造体 */
+  void* buff,  /* [OUT] 読み出したデータを格納するバッファ */
+  UINT btr,    /* [IN] 読み出すバイト数 */
+  UINT* br     /* [OUT] 読み出されたバイト数 */
 );
 
-

+

引数

fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
buff
-
ǂݏof[^i[obt@w|C^w肵܂B
+
読み出したデータを格納するバッファを指すポインタを指定します。
btr
-
ǂݏooCg(0`UINT^̍ől)w肵܂B
+
読み出すバイト数(0~UINT型の最大値)を指定します。
br
-
ۂɓǂݏoꂽoCgi[ϐw|C^w肵܂B߂l͊֐̐ۂɂ炸ɗLłB
+
実際に読み出されたバイト数を格納する変数を指すポインタを指定します。戻り値は関数の成否にかかわらず常に有効です。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -54,22 +54,22 @@ FRESULT f_read (

-

-

ǂݍ݊JnʒúÃ݂[h/CgE|C^ɂȂ܂B[h/CgE|C^͓ǂݍ܂ꂽoCgi݂܂B֐ÍA*br̒l`FbNׂłB*brbtrƂ́AǂݍݒɃt@C̏I[ɒBƂĂ܂B

+

解説

+

読み込み開始位置は、現在のリード/ライト ポインタからになります。リード/ライト ポインタは読み込まれたバイト数だけ進みます。関数が正常終了した後は、*brの値をチェックすべきです。*brbtrよりも小さいときは、読み込み中にファイルの終端に達したことを示しています。

-

Ή

-

SĂ̍\Ŏgp”\łB

+

対応情報

+

全ての構成で使用可能です。

-

Q

+

参照

f_open, fgets, f_write, f_close, FIL

-

߂

+

戻る

diff --git a/fatfs/doc/ja/readdir.html b/fatfs/doc/ja/readdir.html index bd1c34e..fc8fc5c 100644 --- a/fatfs/doc/ja/readdir.html +++ b/fatfs/doc/ja/readdir.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

f_readdir

-

fBNgڂǂݏo܂B

+

ディレクトリ項目を読み出します。

 FRESULT f_readdir (
-  DIR* dp,      /* [IN] fBNgEuWFNg\̂ւ̃|C^ */
-  FILINFO* fno  /* [OUT] t@C\̂ւ̃|C^ */
+  DIR* dp,      /* [IN] ディレクトリ ブジェクト構造体へのポインタ */
+  FILINFO* fno  /* [OUT] ファイル情報構造体へのポインタ */
 );
 
-

+

引数

dp
-
LȃfBNgEIuWFNg\̂ւ̃|C^w肵܂B
+
有効なディレクトリ オブジェクト構造体へのポインタを指定します。
fno
-
ǂݏofBNgڂi[t@C\̂ւ̃|C^w肵܂B
+
読み出したディレクトリ項目を格納するファイル情報構造体へのポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -48,37 +48,37 @@ FRESULT f_readdir (

-

-

fBNg̍(t@CƃfBNg)ǂݏo܂B̊֐JԂs邱Ƃɂ肻̃fBNg̑SĂ̍ڂǂݏoƂł܂Bt@C̏ڍׂɂ‚Ă FILINFO\̂QƂĂBSĂ̍ڂǂݏoAǂݏoڂƂ́Afname[]oɃk񂪕Ԃ܂BfnoɃkE|C^w肷ƁÃfBNg̃[hECfbNX擪Ɋ߂܂B܂Å֐͎Ɏ悤Ɋ֘A\IvVɂ蓮삪ς܂B

-

hbgEGg("."A"..")́A΃pXLȂƂ(_FS_RPATH >= 1)ɂ̂ݏo͂Ɍ܂B

-

LFN@\LȎ́Å֐̌Ăяoɐ旧FILINFOlfnamelfsizeLȒlŏĂȂ΂Ȃ܂BlfnameLFNi[obt@ŁAlfsize͂̃obt@̗vfłBLFNǂݏoKvȂƂ́AlfnameɃkE|C^ZbgĂB̏Ɉ‚łYꍇ́ALFNi[obt@Ƀk񂪕Ԃ܂B

+

解説

+

ディレクトリの項目(ファイルとディレクトリ)を順次読み出します。この関数を繰り返し実行することによりそのディレクトリの全ての項目を読み出すことができます。得られるファイル情報の詳細については FILINFO構造体を参照してください。全ての項目が読み出され、読み出す項目がもう無いときは、fname[]メンバにヌル文字列が返されます。fnoにヌル ポインタを指定すると、そのディレクトリのリード インデックスを先頭に巻き戻します。また、この関数は次に示すように関連する構成オプションにより動作が変わります。

+

ドット エントリ("."、"..")は、相対パスが有効なとき(_FS_RPATH >= 1)にのみ出力に現れます。

+

LFN機能が有効な時は、この関数の呼び出しに先立ってFILINFO構造体のlfnamelfsizeが有効な値で初期化されていなければなりません。lfnameはLFNを格納するバッファで、lfsizeはそのバッファの要素数です。LFNを読み出す必要がないときは、lfnameにヌル ポインタをセットしてください。次の条件に一つでも該当する場合は、LFN格納バッファにヌル文字列が返されます。

    -
  • fBNgڂLFN񂪑݂ȂB
  • -
  • LFN̒ɑ΂LFNi[obt@܂LFNobt@̃TCYs\B
  • -
  • LFNɌ݂OEMR[hɑ݂Ȃ܂܂ĂB(Unicode\̂Ƃ)
  • +
  • ディレクトリ項目にLFN情報が存在しない。
  • +
  • LFNの長さに対してLFN格納バッファまたはLFN操作バッファのサイズが不十分。
  • +
  • LFNに現在のOEMコードに存在しない文字が含まれている。(非Unicode構成のとき)
-

܂AfBNgڂLFN񂪑݂Ȃꍇ́Afname[]ɉp܂܂ꍇ܂B

+

また、ディレクトリ項目にLFN情報が存在しない場合は、fname[]に英小文字が含まれる場合があります。

-

Ή

-

_FS_MINIMIZE <= 1̂ƂɎgp”\łB

+

対応情報

+

_FS_MINIMIZE <= 1のときに使用可能です。

-

gp

+

使用例

 FRESULT scan_files (
-    char* path        /* Jnm[h ([NGAƂĂgp) */
+    char* path        /* 開始ノード (ワークエリアとしても使用) */
 )
 {
     FRESULT res;
     FILINFO fno;
     DIR dir;
     int i;
-    char *fn;   /* Unicode\z */
+    char *fn;   /* 非Unicode構成を想定 */
 #if _USE_LFN
     static char lfn[_MAX_LFN + 1];
     fno.lfname = lfn;
@@ -86,24 +86,24 @@ FRESULT scan_files (
 #endif
 
 
-    res = f_opendir(&dir, path);                       /* fBNgJ */
+    res = f_opendir(&dir, path);                       /* ディレクトリを開く */
     if (res == FR_OK) {
         i = strlen(path);
         for (;;) {
-            res = f_readdir(&dir, &fno);                   /* fBNgڂ1“ǂݏo */
-            if (res != FR_OK || fno.fname[0] == 0) break;  /* G[܂͍ږ̂Ƃ͔ */
-            if (fno.fname[0] == '.') continue;             /* hbgGg͖ */
+            res = f_readdir(&dir, &fno);                   /* ディレクトリ項目を1個読み出す */
+            if (res != FR_OK || fno.fname[0] == 0) break;  /* エラーまたは項目無しのときは抜ける */
+            if (fno.fname[0] == '.') continue;             /* ドットエントリは無視 */
 #if _USE_LFN
             fn = *fno.lfname ? fno.lfname : fno.fname;
 #else
             fn = fno.fname;
 #endif
-            if (fno.fattrib & AM_DIR) {                    /* fBNg */
+            if (fno.fattrib & AM_DIR) {                    /* ディレクトリ */
                 sprintf(&path[i], "/%s", fn);
                 res = scan_files(path);
-                if (res != FR_OK) break;
                 path[i] = 0;
-            } else {                                       /* t@C */
+                if (res != FR_OK) break;
+            } else {                                       /* ファイル */
                 printf("%s/%s\n", path, fn);
             }
         }
@@ -117,10 +117,10 @@ FRESULT scan_files (
 
 
 
 
-

߂

+

戻る

diff --git a/fatfs/doc/ja/rename.html b/fatfs/doc/ja/rename.html index 0eafa49..5259846 100644 --- a/fatfs/doc/ja/rename.html +++ b/fatfs/doc/ja/rename.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

f_rename

-

t@C܂̓TuEfBNg̖O̕ύX܂͈ړ܂B

+

ファイルまたはサブ ディレクトリの名前の変更または移動します。

 FRESULT f_rename (
-  const TCHAR* old_name, /* [IN] ÂIuWFNg */
-  const TCHAR* new_name  /* [IN] VIuWFNg */
+  const TCHAR* old_name, /* [IN] 古いオブジェクト名 */
+  const TCHAR* new_name  /* [IN] 新しいオブジェクト名 */
 );
 
-

+

引数

old_name
-
ύXΏۂ̃t@C܂̓TuEfBNgpXk'\0'I[̕ւ̃|C^w肵܂B
+
変更対象のファイルまたはサブ ディレクトリのパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。
new_name
-
VpXk'\0'I[̕ւ̃|C^w肵܂Bɑ݂IuWFNgƓO͎g܂B܂AhCuԍ͎w肵ĂAold_nameŌ߂ꂽ_hCũIuWFNgƂĈ܂B
+
新しいパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。既に存在するオブジェクトと同じ名前は使えません。また、ドライブ番号は指定しても無視され、old_nameで決められた論理ドライブ上のオブジェクトとして扱われます。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -55,28 +55,28 @@ FRESULT f_rename (

-

-

t@C܂̓TuEfBNg̖OύX܂B܂Aɕʂ̃fBNgւ̈ړ”\łAقȂhCuւ̈ړ͂ł܂BJĂIuWFNgɑ΂ĎgpĂ͂Ȃ܂B

+

解説

+

ファイルまたはサブ ディレクトリの名前を変更します。また、同時に別のディレクトリへの移動も可能ですが、異なるドライブへの移動はできません。開かれているオブジェクトに対して使用してはなりません

-

Ή

-

_FS_READONLY == 0ŁA_FS_MINIMIZE == 0̂ƂɎgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_FS_MINIMIZE == 0のときに使用可能です。

-

gp

+

使用例

-    /* t@C܂̓TufBNg̖OύX */
+    /* ファイルまたはサブディレクトリの名前を変更する */
     f_rename("oldname.txt", "newname.txt");
 
-    /* t@C܂̓TufBNg̖O̕ύXƕʂ̃fBNgւ̈ړ */
+    /* ファイルまたはサブディレクトリの名前の変更と別のディレクトリへの移動 */
     f_rename("oldname.txt", "dir1/newname.txt");
 
-

߂

+

戻る

diff --git a/fatfs/doc/ja/sdir.html b/fatfs/doc/ja/sdir.html index 3e6f712..3390549 100644 --- a/fatfs/doc/ja/sdir.html +++ b/fatfs/doc/ja/sdir.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

DIR

-

DIR\̂́Af_opendir(), f_readdir()̃[NEGAƂĎgp܂BAvP[V́A̍\̂̃oĂ͂Ȃ܂B

+

DIR構造体は、f_opendir(), f_readdir()のワーク エリアとして使用されます。アプリケーションは、この構造体のメンバを書き換えてはなりません。

 typedef struct {
-    FATFS*  fs;        /* et@CEVXeEIuWFNgւ̃|C^ */
-    WORD    id;        /* et@CEVXeEIuWFNg̃}EgID */
-    WORD    index;     /* ɌJnfBNgECfbNXԍ */
-    DWORD   sclust;    /* e[uJnNX^ (0:[g) */
-    DWORD   clust;     /* ݂̃NX^ԍ */
-    DWORD   sect;      /* ݂̃ZN^ԍ */
-    BYTE*   dir;       /* ݂SFNGgւ̃|C^ */
-    BYTE*   fn;        /* SFNobt@ւ̃|C^ (in/out) {file[8],ext[3],status[1]} */
+    FATFS*  fs;        /* 親ファイル システム オブジェクトへのポインタ */
+    WORD    id;        /* 親ファイル システム オブジェクトのマウントID */
+    WORD    index;     /* 次に検索開始するディレクトリ インデックス番号 */
+    DWORD   sclust;    /* テーブル開始クラスタ (0:ルート) */
+    DWORD   clust;     /* 現在のクラスタ番号 */
+    DWORD   sect;      /* 現在のセクタ番号 */
+    BYTE*   dir;       /* 現在のSFNエントリへのポインタ */
+    BYTE*   fn;        /* SFNバッファへのポインタ (in/out) {file[8],ext[3],status[1]} */
 #if _FS_LOCK
-    UINT    lockid;    /* bNID */
+    UINT    lockid;    /* ロックID */
 #endif
 #if _USE_LFN
-    WCHAR*  lfn;       /* LFNobt@ւ̃|C^ (in/out) */
-    WORD    lfn_idx;   /* LFNGg̐擪CfbNX (0xFFFF:) */
+    WCHAR*  lfn;       /* LFNバッファへのポインタ (in/out) */
+    WORD    lfn_idx;   /* LFNエントリの先頭インデックス (0xFFFF:無効) */
 #endif
 } DIR;
 
-

߂

+

戻る

diff --git a/fatfs/doc/ja/setlabel.html b/fatfs/doc/ja/setlabel.html index af4a243..dc71ac3 100644 --- a/fatfs/doc/ja/setlabel.html +++ b/fatfs/doc/ja/setlabel.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_setlabel

-

{[Ƀ{[Exݒ肵܂B

+

ボリュームにボリューム ラベルを設定します。

 FRESULT f_setlabel (
-  const TCHAR* label  /* [IN] ݒ肷{[Exւ̃|C^ */
+  const TCHAR* label  /* [IN] 設定するボリューム ラベルへのポインタ */
 );
 
-

+

引数

label
-
ݒ肷{[Exk'\0'I[̕ւ̃|C^w肵܂B
+
設定するボリューム ラベルを示すヌル文字'\0'終端の文字列へのポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -48,42 +48,42 @@ FRESULT f_setlabel (

-

-

̐擪ɃhCuԍ܂ޏꍇ́A̘_hCuɑ΂Đݒ肳܂B܂܂Ȃꍇ́AftHgEhCuɐݒ肳܂B{[Ex폜Ƃ́Akw肵܂B{[Ex̃tH[}bǵAt@C(SFN)ƂقړłA̓_قȂ܂B

+

解説

+

文字列の先頭にドライブ番号を含む場合は、その論理ドライブに対して設定されます。含まない場合は、デフォルト ドライブに設定されます。ボリューム ラベルを削除するときは、ヌル文字列を指定します。ボリューム ラベルのフォーマットは、ファイル名(SFN)とほぼ同じですが、次の点が異なります。

    -
  • [JR[hZ11oCgȉBLFNg͓Kp܂B
  • -
  • sIh܂ނƂ͂łȂB
  • -
  • Cӂ̈ʒuɃXy[XuƂłBAŌƂȂXy[X͏B
  • +
  • ローカル文字コード換算で11バイト以下。LFN拡張は適用されません。
  • +
  • ピリオドを含むことはできない。
  • +
  • 任意の位置にスペースを置くことができる。ただし、最後尾となるスペースは除去される。
-

Ή

-

_FS_READONLY == 0ŁA_USE_LABEL == 1̂ƂɎgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_USE_LABEL == 1のときに使用可能です。

-

gp

+

使用例

-    /* ftHgEhCuɃ{[Exݒ */
+    /* デフォルト ドライブにボリューム ラベルを設定 */
     f_setlabel("DATA DISK");
 
-    /* hCu2Ƀ{[Exݒ */
+    /* ドライブ2にボリューム ラベルを設定 */
     f_setlabel("2:DISK 3 OF 4");
 
-    /* hCu2̃{[Ex폜 */
+    /* ドライブ2のボリューム ラベルを削除 */
     f_setlabel("2:");
 
-

Q

+

参照

f_getlabel
-

߂

+

戻る

diff --git a/fatfs/doc/ja/sfatfs.html b/fatfs/doc/ja/sfatfs.html index ed5ac87..93b9e7c 100644 --- a/fatfs/doc/ja/sfatfs.html +++ b/fatfs/doc/ja/sfatfs.html @@ -1,7 +1,7 @@ - + @@ -13,43 +13,43 @@

FATFS

-

FATFS\(t@CEVXeEIuWFNg)́AX̘_hCũ_Ci~bNE[NEGAێAf_mount()FatFsW[ɓo^܂Bs^C~ÓAf_mount()(}Egw)̎s܂̓fBǍ̍ŏ̃t@CEANZX̎łBAvP[V́A̍\̂̃oĂ͂Ȃ܂B

+

FATFS構造体(ファイル システム オブジェクト)は、個々の論理ドライブのダイナミック ワーク エリアを保持し、f_mount()でFatFsモジュールに登録されます。初期化が行われるタイミングは、f_mount()(強制マウント指定)の実行またはメディア交換の後の最初のファイル アクセスの時です。アプリケーションは、この構造体のメンバを書き換えてはなりません。

 typedef struct {
-    BYTE    fs_type;      /* FAT^Cv */
-    BYTE    drv;          /* hCuԍ */
-    BYTE    csize;        /* NX^̃ZN^ (1,2,4,8,...,128)*/
-    BYTE    n_fats;       /* FAT̑d (1,2) */
-    BYTE    wflag;        /* win[]_[eBEtO */
-    BYTE    fsi_flag;     /* FSINFOtO (b7:Disabled, b0:Dirty)*/
-    WORD    id;           /* t@CEVXeE}EgID */
-    WORD    n_rootdir;    /* [gEfBNg̃Gg (FAT12/16) */
+    BYTE    fs_type;      /* FATタイプ */
+    BYTE    drv;          /* 物理ドライブ番号 */
+    BYTE    csize;        /* クラスタ当たりのセクタ数 (1,2,4,8,...,128)*/
+    BYTE    n_fats;       /* FATの多重化数 (1,2) */
+    BYTE    wflag;        /* win[]ダーティ フラグ */
+    BYTE    fsi_flag;     /* FSINFOフラグ (b7:Disabled, b0:Dirty)*/
+    WORD    id;           /* ファイル システム マウントID */
+    WORD    n_rootdir;    /* ルート ディレクトリのエントリ数 (FAT12/16) */
 #if _MAX_SS != _MIN_SS
-    WORD    ssize;        /* ZN^ETCY (512, 1024, 2048 or 4096) */
+    WORD    ssize;        /* セクタ サイズ (512, 1024, 2048 or 4096) */
 #endif
 #if _FS_REENTRANT
-    _SYNC_t sobj;         /* IuWFNgID */
+    _SYNC_t sobj;         /* 同期オブジェクトID */
 #endif
 #if !_FS_READONLY
-    DWORD   last_clust;   /* FSINFO: ŌɊ蓖ĂꂽNX^ԍ */
-    DWORD   free_clust;   /* FSINFO: 󂫃NX^ */
+    DWORD   last_clust;   /* FSINFO: 最後に割り当てられたクラスタ番号 */
+    DWORD   free_clust;   /* FSINFO: 空きクラスタ数 */
 #endif
 #if _FS_RPATH
-    DWORD   cdir;         /* JgEfBNg̃NX^ (0:[g) */
+    DWORD   cdir;         /* カレント ディレクトリのクラスタ (0:ルート) */
 #endif
-    DWORD   n_fatent;     /* FATGg (NX^ + 2) */
-    DWORD   fsize;        /* FAT 1‚̃ZN^ */
-    DWORD   volbase;      /* {[JnZN^ */
-    DWORD   fatbase;      /* FAT̈JnZN^ */
-    DWORD   dirbase;      /* [gEfBNg̈JnZN^(NX^) */
-    DWORD   database;     /* f[^̈JnZN^ */
-    DWORD   winsect;      /* win[]ɌĂZN^ԍ */
-    BYTE    win[_MAX_SS]; /* fBXNEANZXEEBhE */
+    DWORD   n_fatent;     /* FATエントリ数 (総クラスタ数 + 2) */
+    DWORD   fsize;        /* FAT 1個のセクタ数 */
+    DWORD   volbase;      /* ボリューム開始セクタ */
+    DWORD   fatbase;      /* FAT領域開始セクタ */
+    DWORD   dirbase;      /* ルート ディレクトリ領域開始セクタ(クラスタ) */
+    DWORD   database;     /* データ領域開始セクタ */
+    DWORD   winsect;      /* win[]に現れているセクタ番号 */
+    BYTE    win[_MAX_SS]; /* ディスク アクセス ウィンドウ */
 } FATFS;
 
-

߂

+

戻る

diff --git a/fatfs/doc/ja/sfile.html b/fatfs/doc/ja/sfile.html index 36a73b3..5da60f9 100644 --- a/fatfs/doc/ja/sfile.html +++ b/fatfs/doc/ja/sfile.html @@ -1,7 +1,7 @@ - + @@ -13,36 +13,36 @@

FIL

-

FIL\(t@CEIuWFNg)́Af_open()ŏAȌセ̃t@C̏Ԃێ܂B܂Af_close()Ńt@C‚Ɩ܂BAvP[V́A̍\̂̃oĂ͂Ȃ܂(cltbl͗O)B^Cj[\ł́AɃZN^Eobt@mۂ̂ŁALTCYɒӂKvłB

+

FIL構造体(ファイル オブジェクト)は、f_open()で初期化され、以後そのファイルの状態を保持します。また、f_close()でファイルが閉じられると無効化されます。アプリケーションは、この構造体のメンバを書き換えてはなりません(cltblは例外)。非タイニー構成(_FS_TINY == 0)では、内部に_MAX_SSバイトのセクタ バッファが確保されるので、そのサイズには注意が必要です。

 typedef struct {
-    FATFS*  fs;           /* et@CEVXeEIuWFNgւ̃|C^ */
-    WORD    id;           /* et@CEVXeEIuWFNg̃}EgID */
-    BYTE    flag;         /* t@CEXe[^XEtO */
-    BYTE    err;          /* G[ftO */
-    DWORD   fptr;         /* t@Cǂݏ|C^ (t@C擪̃oCgEItZbg) */
-    DWORD   fsize;        /* t@CETCY(oCgP) */
-    DWORD   sclust;       /* t@CJnNX^ԍ (0:蓖Ė) */
-    DWORD   clust;        /* ݂̃NX^ */
-    DWORD   dsect;        /* ݂̃f[^EZN^ */
+    FATFS*  fs;           /* 親ファイル システム オブジェクトへのポインタ */
+    WORD    id;           /* 親ファイル システム オブジェクトのマウントID */
+    BYTE    flag;         /* ファイル ステータス フラグ */
+    BYTE    err;          /* エラー中断フラグ */
+    DWORD   fptr;         /* ファイル読み書きポインタ (ファイル先頭からのバイト オフセット) */
+    DWORD   fsize;        /* ファイル サイズ(バイト単位) */
+    DWORD   sclust;       /* ファイル開始クラスタ番号 (0:割り当て無し) */
+    DWORD   clust;        /* 現在のクラスタ */
+    DWORD   dsect;        /* 現在のデータ セクタ */
 #if !_FS_READONLY
-    DWORD   dir_sect;     /* ̃t@C̃fBNgEGĝZN^ */
-    BYTE*   dir_ptr;      /* ̃t@C̃fBNgւ̃|C^ */
+    DWORD   dir_sect;     /* このファイルのディレクトリ エントリのあるセクタ */
+    BYTE*   dir_ptr;      /* このファイルのディレクトリへのポインタ */
 #endif
 #if _USE_FASTSEEK
-    DWORD*  cltbl;        /* t@C̃NX^ENւ̃|C^ (I[vNULLZbg) */
+    DWORD*  cltbl;        /* ファイルのクラスタ リンク情報へのポインタ (オープン時にNULLがセットされる) */
 #endif
 #if _FS_LOCK
-    UINT    lockid;       /* t@CEbNID */
+    UINT    lockid;       /* ファイル ロックID */
 #endif
 #if !_FS_TINY
-    BYTE    buf[_MAX_SS]; /* t@CEvCx[gEf[^]obt@ */
+    BYTE    buf[_MAX_SS]; /* ファイル プライベート データ転送バッファ */
 #endif
 } FIL;
 
-

߂

+

戻る

diff --git a/fatfs/doc/ja/sfileinfo.html b/fatfs/doc/ja/sfileinfo.html index 1a3db24..a9167f1 100644 --- a/fatfs/doc/ja/sfileinfo.html +++ b/fatfs/doc/ja/sfileinfo.html @@ -1,7 +1,7 @@ - + @@ -13,58 +13,58 @@

FILINFO

-

FILINFO\̂́Af_stat(), f_readdir()ŕԂt@Cێ܂B

+

FILINFO構造体は、f_stat(), f_readdir()で返されるファイル情報を保持します。

 typedef struct {
-    DWORD fsize;     /* t@CETCY */
-    WORD fdate;      /* ŌɍXVꂽt */
-    WORD ftime;      /* ŌɍXVꂽ  */
-    BYTE fattrib;    /* Agr[g */
-    TCHAR fname[13]; /* Zt@C (8.3tH[}bg) */
+    DWORD fsize;     /* ファイル サイズ */
+    WORD fdate;      /* 最後に更新された日付 */
+    WORD ftime;      /* 最後に更新された時刻  */
+    BYTE fattrib;    /* アトリビュート */
+    TCHAR fname[13]; /* 短いファイル名 (8.3フォーマット) */
 #if _USE_LFN
-    TCHAR* lfname;   /* t@C̃obt@ւ̃|C^ */
-    int lfsize;      /* t@C̃obt@̃TCY [] */
+    TCHAR* lfname;   /* 長いファイル名のバッファへのポインタ */
+    int lfsize;      /* 長いファイル名のバッファのサイズ [文字数] */
 #endif
 } FILINFO;
 
-

o

+

メンバ

fsize
-
t@C̃oCgPʂ̃TCYi[܂BfBNg̏ꍇ͏0łB
+
ファイルのバイト単位のサイズが格納されます。ディレクトリの場合は常に0です。
fdate
-
t@C̕ύXꂽtA܂̓fBNg̍쐬ꂽti[܂B
+
ファイルの変更された日付、またはディレクトリの作成された日付が格納されます。
bit15:9
-
1980NN_ƂN 0..127 œ܂B
+
1980年を起点とした年が 0..127 で入ります。
bit8:5
-
1..12 ̒lœ܂B
+
月が 1..12 の値で入ります。
bit4:0
-
1..31 ̒lœ܂B
+
日が 1..31 の値で入ります。
ftime
-
t@C̕ύXꂽA܂̓fBNg̍쐬ꂽi[܂B
+
ファイルの変更された時刻、またはディレクトリの作成された時刻が格納されます。
bit15:11
-
0..23 ̒lœ܂B
+
時が 0..23 の値で入ります。
bit10:5
-
0..59 ̒lœ܂B
+
分が 0..59 の値で入ります。
bit4:0
-
b/2 0..29 ̒lœ܂B
+
秒/2が 0..29 の値で入ります。
fattrib
-
tOi[܂BtOAM_DIR, AM_RDO, AM_HID, AM_SYS, AM_ARC̑gݍ킹ƂȂ܂B
+
属性フラグが格納されます。フラグはAM_DIR, AM_RDO, AM_HID, AM_SYS, AM_ARCの組み合わせとなります。
fname[]
-
8.3`̖O'\0'ŏI镶ƂĊi[܂BLFN\̂Ƃ́Aɑ啶ŕԂ܂BLFN\̂Ƃ͒ZOԂ܂AASCIIpɂȂꍇ܂B
+
8.3形式の名前が'\0'で終わる文字列として格納されます。非LFN構成のときは、常に大文字で返されます。LFN構成のときは短い名前が返されますが、ASCII英字が小文字になる場合があります。
lfname
-
Ԃ钷t@Ci[obt@ւ̃|C^B̍\̂gpOɃAvP[Vɂ菉Ȃ΂Ȃ܂B̃oNULLݒ肳LFN͕Ԃ܂BLFN\̂Ƃ͂̃o݂͑܂B
+
返される長いファイル名を格納するバッファへのポインタ。この構造体を使用する前にアプリケーションにより初期化されなければなりません。このメンバにNULLが設定されるとLFNは返されません。非LFN構成のときはこのメンバは存在しません。
lfsize
-
t@Ci[obt@̃TCY(vf)B̍\̂gpOɃAvP[Vɂ菉Ȃ΂Ȃ܂BLFN\̂Ƃ͂̃o݂͑܂B
+
長いファイル名を格納するバッファのサイズ(要素数)。この構造体を使用する前にアプリケーションにより初期化されなければなりません。非LFN構成のときはこのメンバは存在しません。
-

߂

+

戻る

diff --git a/fatfs/doc/ja/size.html b/fatfs/doc/ja/size.html index caff05d..d75ffc3 100644 --- a/fatfs/doc/ja/size.html +++ b/fatfs/doc/ja/size.html @@ -1,7 +1,7 @@ - + @@ -13,33 +13,33 @@

f_size

-

t@C̃TCY擾܂B

+

ファイルのサイズを取得します。

 DWORD f_size (
-  FIL* fp   /* [IN] t@CEIuWFNg */
+  FIL* fp   /* [IN] ファイル オブジェクト */
 );
 
-

+

引数

fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
-

߂l

-

oCgPʂ̃t@CETCYԂ܂B

+

戻り値

+

バイト単位のファイル サイズが返ります。

-

-

f_size֐́ArWł̓}NƂĎĂ܂B

+

解説

+

f_size関数は、現リビジョンではマクロとして実装されています。

 #define f_size(fp) ((fp)->fsize)
 
@@ -47,16 +47,16 @@ DWORD f_size (
-

Ή

-

Ɏgp”\B

+

対応情報

+

常に使用可能。

-

Q

+

参照

f_open, f_lseek, FIL

-

߂

+

戻る

diff --git a/fatfs/doc/ja/stat.html b/fatfs/doc/ja/stat.html index 5337f34..724a9d5 100644 --- a/fatfs/doc/ja/stat.html +++ b/fatfs/doc/ja/stat.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

f_stat

-

t@C܂̓TuEfBNg݂̑𒲂ׁA܂̏擾܂B

+

ファイルまたはサブ ディレクトリの存在を調べ、またその情報を取得します。

 FRESULT f_stat (
-  const TCHAR* path,  /* [IN] IuWFNgւ̃|C^ */
-  FILINFO* fno        /* [OUT] t@C\̂ւ̃|C^ */
+  const TCHAR* path,  /* [IN] オブジェクト名へのポインタ */
+  FILINFO* fno        /* [OUT] ファイル情報構造体へのポインタ */
 );
 
-

+

引数

path
-
`FbNIuWFNgk'\0'I[̕w|C^w肵܂B
+
チェックするオブジェクト名を示すヌル文字'\0'終端の文字列を指すポインタを指定します。
fno
-
IuWFNg݂Ƃɂ̏i[t@C\̂ւ̃|C^w肵܂B̏񂪕svȂƂ̓kE|C^w肵ĂB
+
オブジェクトが存在したときにその情報を格納するファイル情報構造体へのポインタを指定します。この情報が不要なときはヌル ポインタを指定してください。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -53,22 +53,61 @@ FRESULT f_stat (

-

-

w肳ꂽt@C܂̓TuEfBNg݂̑𒲂ׂ܂B݂Ȃꍇ́AFR_NO_FILEA܂B݂ꍇFR_OKAAt@C\̂ɂւ(TCYA^CX^vAђZt@C)XgA܂B

+

解説

+

指定されたファイルまたはサブ ディレクトリの存在を調べます。存在しない場合は、FR_NO_FILEが帰ります。存在する場合はFR_OKが帰り、ファイル情報構造体にそれ関する情報(サイズ、タイムスタンプ、属性および短いファイル名)がストアされます。

-

Ή

-

_FS_MINIMIZE == 0̂ƂɎgp”\łB

+

対応情報

+

_FS_MINIMIZE == 0のときに使用可能です。

+
+ + +
+

使用例

+
+    FRESULT fr;
+    FILINFO fno;
+
+
+    printf("Test for 'file.txt'...\n");
+
+#if _USE_LFN
+    fno.lfname = 0;
+#endif
+    fr = f_stat("file.txt", &fno);
+    switch (fr) {
+
+    case FR_OK:
+        printf("Size: %u\n", fno.fsize);
+        printf("Timestamp: %u/%02u/%02u, %02u:%02u\n",
+               (fno.fdate >> 9) + 1980, fno.fdate >> 5 & 15, fno.fdate & 31,
+               fno.ftime >> 11, fno.ftime >> 5 & 63);
+        printf("Attributes: %c%c%c%c%c\n",
+               (fno.fattrib & AM_DIR) ? 'D' : '-',
+               (fno.fattrib & AM_RDO) ? 'R' : '-',
+               (fno.fattrib & AM_HID) ? 'H' : '-',
+               (fno.fattrib & AM_SYS) ? 'S' : '-',
+               (fno.fattrib & AM_ARC) ? 'A' : '-');
+        break;
+
+    case FR_NO_FILE:
+        printf("It is not exist.\n");
+        break;
+
+    default:
+        printf("An error occured. (%d)\n", fr);
+    }
+
-

Q

+

参照

f_opendir, f_readdir, FILINFO, DIR

-

߂

+

戻る

diff --git a/fatfs/doc/ja/sync.html b/fatfs/doc/ja/sync.html index 74f7910..4b594d6 100644 --- a/fatfs/doc/ja/sync.html +++ b/fatfs/doc/ja/sync.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_sync

-

ݒ̃t@C̃LbVꂽtbV܂B

+

書き込み中のファイルのキャッシュされた情報をフラッシュします。

 FRESULT f_sync (
-  FIL* fp     /* [IN] t@CEIuWFNg\̂ւ̃|C^ */
+  FIL* fp     /* [IN] ファイル オブジェクト構造体へのポインタ */
 );
 
-

+

引数

fp
-
synct@C̃t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
syncするファイルのファイル オブジェクト構造体へのポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -44,23 +44,23 @@ FRESULT f_sync (

-

-

̊֐f_close()Ɠs܂At@C͈Jꂽ܂܂ɂȂAǂݏ𑱍sł܂BMOȂǁA݃[hŒԃt@CJĂAvP[VɂāAI܂͋؂̗ǂƂł̊֐gp邱ƂɂAsӂ̓df⃁fBA̎Oɂ莸f[^ŏɂ邱Ƃł܂B̔wiɂ‚ẮAAvP[VEm[gQƂĂB

-

ۂ̂ƂAf_close()ł͂̊֐Ăяot@CEIuWFNg𖳌Ă邾Ȃ̂ŁAf_close()Of_sync()uƂ͖ӖłB

+

解説

+

この関数はf_close()と同じ処理を実行しますが、ファイルは引き続き開かれたままになり、読み書きを続行できます。ロギングなど、書き込みモードで長時間ファイルが開かれているアプリケーションにおいて、定期的または区切りの良いところでこの関数を使用することにより、不意の電源断やメディアの取り外しにより失われるデータを最小にすることができます。この背景については、アプリケーション ノートも参照してください。

+

実際のところ、f_close()内ではこの関数を呼び出した後ファイル オブジェクトを無効化しているだけなので、f_close()直前にf_sync()を置くことは無意味です。

-

Ή

-

_FS_READONLY == 0̂ƂɎgp”\łB

+

対応情報

+

_FS_READONLY == 0のときに使用可能です。

-

Q

+

参照

f_close

-

߂

+

戻る

diff --git a/fatfs/doc/ja/tell.html b/fatfs/doc/ja/tell.html index 1dee982..d050691 100644 --- a/fatfs/doc/ja/tell.html +++ b/fatfs/doc/ja/tell.html @@ -1,7 +1,7 @@ - + @@ -13,33 +13,33 @@

f_tell

-

݂̃[h/CgE|C^擾܂B

+

現在のリード/ライト ポインタを取得します。

 DWORD f_tell (
-  FIL* fp   /* [IN] t@CEIuWFNg */
+  FIL* fp   /* [IN] ファイル オブジェクト */
 );
 
-

+

引数

fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
-

߂l

-

݂̃[h/CgE|C^(t@C擪̃oCgPʂ̃ItZbg)Ԃ܂B

+

戻り値

+

現在のリード/ライト ポインタ(ファイル先頭からのバイト単位のオフセット)が返ります。

-

-

f_tell֐́ArWł̓}NƂĎĂ܂B

+

解説

+

f_tell関数は、現リビジョンではマクロとして実装されています。

 #define f_tell(fp) ((fp)->fptr)
 
@@ -47,16 +47,16 @@ DWORD f_tell (
-

Ή

-

Ɏgp”\B

+

対応情報

+

常に使用可能。

-

Q

+

参照

f_open, f_lseek, FIL

-

߂

+

戻る

diff --git a/fatfs/doc/ja/truncate.html b/fatfs/doc/ja/truncate.html index 29bf480..b33a757 100644 --- a/fatfs/doc/ja/truncate.html +++ b/fatfs/doc/ja/truncate.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_truncate

-

t@C؂l߂܂B

+

ファイル長を切り詰めます。

 FRESULT f_truncate (
-  FIL* fp     /* [IN] t@CEIuWFNgւ̃|C^ */
+  FIL* fp     /* [IN] ファイル オブジェクトへのポインタ */
 );
 
-

+

引数

fp
-
؂lߑΏۃt@C̃t@CEIuWFNgւ̃|C^
+
切り詰め対象ファイルのファイル オブジェクトへのポインタ
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -45,19 +45,19 @@ FRESULT f_truncate (

-

-

t@C݂̒̃[h/CgE|C^ɐ؂l߂܂B[h/CgE|C^Ƀt@C̏I[wĂƂ́Å֐͉̌ʂ܂B

+

解説

+

ファイルの長さが現在のリード/ライト ポインタに切り詰められます。リード/ライト ポインタが既にファイルの終端を指しているときは、この関数は何の効果も持ちません。

-

Ή

-

_FS_READONLY == 0ŁA_FS_MINIMIZE == 0̂ƂɎgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_FS_MINIMIZE == 0のときに使用可能です。

-

Q

+

参照

f_open, f_lseek, FIL

diff --git a/fatfs/doc/ja/unlink.html b/fatfs/doc/ja/unlink.html index 7cfb703..3ae691a 100644 --- a/fatfs/doc/ja/unlink.html +++ b/fatfs/doc/ja/unlink.html @@ -1,7 +1,7 @@ - + @@ -13,25 +13,25 @@

f_unlink

-

t@C܂̓TuEfBNg폜܂B

+

ファイルまたはサブ ディレクトリを削除します。

 FRESULT f_unlink (
-  const TCHAR* path  /* [IN] IuWFNgւ̃|C^ */
+  const TCHAR* path  /* [IN] オブジェクト名へのポインタ */
 );
 
-

+

引数

path
-
폜ΏۂpXk'\0'I[̕ւ̃|C^w肵܂B
+
削除対象のパス名を示すヌル文字'\0'終端の文字列へのポインタを指定します。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -53,22 +53,22 @@ FRESULT f_unlink (

-

-

폜Ώۂ̃IuWFNg̏ɓĂ͂܂ꍇÃANZX͋ۂ֐͎s܂B +

解説

+

削除対象のオブジェクトが次の条件に当てはまる場合、そのアクセスは拒否され関数は失敗します。

    -
  • [hEI[(AM_RDO)Ăꍇ́A(FR_DENIED)B
  • -
  • łȂTuEfBNg܂̓JgEfBNgłꍇ́A(FR_DENIED)B
  • -
  • JĂt@C܂̓TuEfBNgłꍇ́AdANZXLȂSɋ(FR_LOCKED)܂AłȂƂ͕sȑƂȂAFAT\j󂳂”\܂B
  • +
  • リード オンリー属性(AM_RDO)を持っている場合は、拒否(FR_DENIED)される。
  • +
  • 空でないサブ ディレクトリまたはカレント ディレクトリである場合は、拒否(FR_DENIED)される。
  • +
  • 開かれているファイルまたはサブ ディレクトリである場合は、多重アクセス制御が有効なら安全に拒否(FR_LOCKED)されますが、そうでないときは不正な操作となり、FAT構造が破壊される可能性があります。

-

Ή

-

_FS_READONLY == 0ŁA_FS_MINIMIZE == 0̂ƂɎgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_FS_MINIMIZE == 0のときに使用可能です。

-

߂

+

戻る

diff --git a/fatfs/doc/ja/utime.html b/fatfs/doc/ja/utime.html index 382defb..087f57f 100644 --- a/fatfs/doc/ja/utime.html +++ b/fatfs/doc/ja/utime.html @@ -1,7 +1,7 @@ - + @@ -13,28 +13,28 @@

f_utime

-

t@C܂̓TuEfBNg̃^CX^vύX܂B

+

ファイルまたはサブ ディレクトリのタイムスタンプを変更します。

 FRESULT f_utime (
-  const TCHAR* path,  /* [IN] IuWFNgւ̃|C^ */
-  const FILINFO* fno  /* [IN] ݒ肷t */
+  const TCHAR* path,  /* [IN] オブジェクト名へのポインタ */
+  const FILINFO* fno  /* [IN] 設定する日付 */
 );
 
-

+

引数

path
-
ύXΏۂ̃IuWFNgpXk'\0'I[̕w肵܂B
+
変更対象のオブジェクトのパス名を示すヌル文字'\0'終端の文字列を指定します。
fno
-
ݒ肷tƎԂfdateftimeoɐݒ肳ꂽFILINFO\̂ւ̃|C^B̃o͂̊֐ł͈Ӗ܂B
+
設定する日付と時間をfdateftimeメンバに設定されたFILINFO構造体へのポインタ。他のメンバはこの関数では意味を持ちません。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -54,16 +54,16 @@ FRESULT f_utime (

-

-

IuWFNg̃^CX^vύX܂B

+

解説

+

オブジェクトのタイムスタンプを変更します。

-

gp

+

使用例

 FRESULT set_timestamp (
-    char *obj,     /* t@Cւ̃|C^ */
+    char *obj,     /* ファイル名へのポインタ */
     int year,
     int month,
     int mday,
@@ -84,16 +84,16 @@ FRESULT set_timestamp (
 
 
 
-

Ή

-

_FS_READONLY == 0ŁA_FS_MINIMIZE == 0̂ƂɎgp”\łB

+

対応情報

+

_FS_READONLY == 0で、且つ_FS_MINIMIZE == 0のときに使用可能です。

-

Q

+

参照

f_stat, FILINFO

-

߂

+

戻る

diff --git a/fatfs/doc/ja/write.html b/fatfs/doc/ja/write.html index 35da3fa..c3de4a0 100644 --- a/fatfs/doc/ja/write.html +++ b/fatfs/doc/ja/write.html @@ -1,7 +1,7 @@ - + @@ -13,34 +13,34 @@

f_write

-

t@CɃf[^݂܂B

+

ファイルにデータを書き込みます。

 FRESULT f_write (
-  FIL* fp,           /* [IN] t@CEIuWFNg */
-  const void* buff,  /* [IN] ݃f[^ */
-  UINT btw,          /* [IN] ރoCg */
-  UINT* bw           /* [OUT] ܂ꂽoCg */
+  FIL* fp,           /* [IN] ファイル オブジェクト */
+  const void* buff,  /* [IN] 書き込みデータ */
+  UINT btw,          /* [IN] 書き込むバイト数 */
+  UINT* bw           /* [OUT] 書き込まれたバイト数 */
 );
 
-

+

引数

fp
-
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ファイル オブジェクト構造体へのポインタを指定します。
buff
-
ރf[^i[obt@w|C^w肵܂B
+
書き込むデータを格納したバッファを指すポインタを指定します。
btw
-
ރoCg(0`UINT^̍ől)w肵܂B
+
書き込むバイト数(0~UINT型の最大値)を指定します。
bw
-
܂ꂽoCgi[ϐw|C^w肵܂B߂l͊֐̐ۂɂ炸ɗLłB
+
書き込まれたバイト数を格納する変数を指すポインタを指定します。戻り値は関数の成否にかかわらず常に有効です。
-

߂l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -54,22 +54,22 @@ FRESULT f_write (

-

-

݊JnʒúA[h/CgE|C^̈ʒuɂȂ܂B[h/CgE|C^͎ۂɏ܂ꂽoCgi݂܂B֐IAvoCg܂ꂽǂ*bw`FbNׂłB*bwbtw菬Ƃ́AfBXNEtӖ܂BfBXNEtĂƂ܂͂ɋ߂Ƃ́A䂪A܂ŎԂꍇ܂B

+

解説

+

書き込み開始位置は、リード/ライト ポインタの位置からになります。リード/ライト ポインタは実際に書き込まれたバイト数だけ進みます。関数が正常終了した後、要求したバイト数が書き込まれたかどうか*bwをチェックすべきです。*bwbtwより小さいときは、ディスク フルを意味します。ディスク フルが発生しているときまたはそれに近いときは、制御が帰るまで時間がかかる場合があります。

-

Ή

-

_FS_READONLY == 0̂ƂɎgp”\łB

+

対応情報

+

_FS_READONLY == 0のときに使用可能です。

-

߂

+

戻る

-- cgit v1.2.3