From 5366852335044c1e68a5c32548d3051cc943552f Mon Sep 17 00:00:00 2001 From: Leo C Date: Tue, 19 Aug 2014 15:31:33 +0200 Subject: Import fatfs R0.10b FatFs Module Source Files R0.10b Author: (C)ChaN, 2014 (http://elm-chan.org) URL: http://elm-chan.org/fsw/ff/ff10b.zip --- fatfs/doc/ja/appnote.html | 282 ++++++++++++++++++++++++++++++++++++++++++++ fatfs/doc/ja/chdir.html | 81 +++++++++++++ fatfs/doc/ja/chdrive.html | 61 ++++++++++ fatfs/doc/ja/chmod.html | 83 +++++++++++++ fatfs/doc/ja/close.html | 66 +++++++++++ fatfs/doc/ja/closedir.html | 64 ++++++++++ fatfs/doc/ja/dinit.html | 46 ++++++++ fatfs/doc/ja/dioctl.html | 95 +++++++++++++++ fatfs/doc/ja/dread.html | 71 +++++++++++ fatfs/doc/ja/dstat.html | 48 ++++++++ fatfs/doc/ja/dwrite.html | 76 ++++++++++++ fatfs/doc/ja/eof.html | 62 ++++++++++ fatfs/doc/ja/error.html | 62 ++++++++++ fatfs/doc/ja/fattime.html | 57 +++++++++ fatfs/doc/ja/fdisk.html | 97 +++++++++++++++ fatfs/doc/ja/filename.html | 76 ++++++++++++ fatfs/doc/ja/forward.html | 140 ++++++++++++++++++++++ fatfs/doc/ja/getcwd.html | 70 +++++++++++ fatfs/doc/ja/getfree.html | 95 +++++++++++++++ fatfs/doc/ja/getlabel.html | 82 +++++++++++++ fatfs/doc/ja/gets.html | 65 ++++++++++ fatfs/doc/ja/lseek.html | 129 ++++++++++++++++++++ fatfs/doc/ja/mkdir.html | 80 +++++++++++++ fatfs/doc/ja/mkfs.html | 73 ++++++++++++ fatfs/doc/ja/mount.html | 82 +++++++++++++ fatfs/doc/ja/open.html | 171 +++++++++++++++++++++++++++ fatfs/doc/ja/opendir.html | 76 ++++++++++++ fatfs/doc/ja/printf.html | 93 +++++++++++++++ fatfs/doc/ja/putc.html | 62 ++++++++++ fatfs/doc/ja/puts.html | 62 ++++++++++ fatfs/doc/ja/rc.html | 85 +++++++++++++ fatfs/doc/ja/read.html | 75 ++++++++++++ fatfs/doc/ja/readdir.html | 126 ++++++++++++++++++++ fatfs/doc/ja/rename.html | 82 +++++++++++++ fatfs/doc/ja/sdir.html | 40 +++++++ fatfs/doc/ja/setlabel.html | 89 ++++++++++++++ fatfs/doc/ja/sfatfs.html | 55 +++++++++ fatfs/doc/ja/sfile.html | 48 ++++++++ fatfs/doc/ja/sfileinfo.html | 70 +++++++++++ fatfs/doc/ja/size.html | 62 ++++++++++ fatfs/doc/ja/stat.html | 74 ++++++++++++ fatfs/doc/ja/sync.html | 66 +++++++++++ fatfs/doc/ja/tell.html | 62 ++++++++++ fatfs/doc/ja/truncate.html | 67 +++++++++++ fatfs/doc/ja/unlink.html | 74 ++++++++++++ fatfs/doc/ja/utime.html | 99 ++++++++++++++++ fatfs/doc/ja/write.html | 75 ++++++++++++ 47 files changed, 3856 insertions(+) create mode 100644 fatfs/doc/ja/appnote.html create mode 100644 fatfs/doc/ja/chdir.html create mode 100644 fatfs/doc/ja/chdrive.html create mode 100644 fatfs/doc/ja/chmod.html create mode 100644 fatfs/doc/ja/close.html create mode 100644 fatfs/doc/ja/closedir.html create mode 100644 fatfs/doc/ja/dinit.html create mode 100644 fatfs/doc/ja/dioctl.html create mode 100644 fatfs/doc/ja/dread.html create mode 100644 fatfs/doc/ja/dstat.html create mode 100644 fatfs/doc/ja/dwrite.html create mode 100644 fatfs/doc/ja/eof.html create mode 100644 fatfs/doc/ja/error.html create mode 100644 fatfs/doc/ja/fattime.html create mode 100644 fatfs/doc/ja/fdisk.html create mode 100644 fatfs/doc/ja/filename.html create mode 100644 fatfs/doc/ja/forward.html create mode 100644 fatfs/doc/ja/getcwd.html create mode 100644 fatfs/doc/ja/getfree.html create mode 100644 fatfs/doc/ja/getlabel.html create mode 100644 fatfs/doc/ja/gets.html create mode 100644 fatfs/doc/ja/lseek.html create mode 100644 fatfs/doc/ja/mkdir.html create mode 100644 fatfs/doc/ja/mkfs.html create mode 100644 fatfs/doc/ja/mount.html create mode 100644 fatfs/doc/ja/open.html create mode 100644 fatfs/doc/ja/opendir.html create mode 100644 fatfs/doc/ja/printf.html create mode 100644 fatfs/doc/ja/putc.html create mode 100644 fatfs/doc/ja/puts.html create mode 100644 fatfs/doc/ja/rc.html create mode 100644 fatfs/doc/ja/read.html create mode 100644 fatfs/doc/ja/readdir.html create mode 100644 fatfs/doc/ja/rename.html create mode 100644 fatfs/doc/ja/sdir.html create mode 100644 fatfs/doc/ja/setlabel.html create mode 100644 fatfs/doc/ja/sfatfs.html create mode 100644 fatfs/doc/ja/sfile.html create mode 100644 fatfs/doc/ja/sfileinfo.html create mode 100644 fatfs/doc/ja/size.html create mode 100644 fatfs/doc/ja/stat.html create mode 100644 fatfs/doc/ja/sync.html create mode 100644 fatfs/doc/ja/tell.html create mode 100644 fatfs/doc/ja/truncate.html create mode 100644 fatfs/doc/ja/unlink.html create mode 100644 fatfs/doc/ja/utime.html create mode 100644 fatfs/doc/ja/write.html (limited to 'fatfs/doc/ja') diff --git a/fatfs/doc/ja/appnote.html b/fatfs/doc/ja/appnote.html new file mode 100644 index 0000000..0fb5579 --- /dev/null +++ b/fatfs/doc/ja/appnote.html @@ -0,0 +1,282 @@ + + + + + + + + +FatFsモジュール アプリケーション・ノート + + + +

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

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

ポーティングの際に配慮すべきこと

+ +

移植の際の前提条件

+

FatFsモジュールは移植性に関して次の点を前提としています。

+ + +

システム構成

+

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

+

システム構成図

+

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

+

functional diagram

+ +

ユーザの作成する関数

+

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

+ + + + + + + + + + +
必要な関数必要となる条件備考
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
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
+
+ +
+

限界値

+ +
+ +
+

メモリ使用量

+

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

+ + + + + + + + + + + + +
ARM7
32bit
ARM7
Thumb
CM3
Thumb-2
AVRH8/300HPIC24RL78V850ESSH-2ARX600IA-32
CompilerGCCGCCGCCGCCCH38C30CC78K0RCA850SHCRXCVC6
_WORD_ACCESS00010001011
text (Full, R/W)1067571716617133551094011722132628113904860327952
text (Min, R/W) 672746314331 8569 7262 7720 90885287580039485183
text (Full, R/O) 473131472889 6235 5170 5497 64823833397228623719
text (Min, R/O) 355924852295 4575 4064 4240 50192993310422142889
bssV*4 + 2V*4 + 2V*4 + 2V*2 + 2V*4 + 2V*2 + 2V*2 + 2V*4 + 2V*4 + 2V*4 + 2V*4 + 2
Work area
(_FS_TINY == 0)
V*560
+ F*550
V*560
+ F*550
V*560
+ F*550
V*560
+ F*544
V*560
+ F*550
V*560
+ F*544
V*560
+ F*544
V*560
+ F*544
V*560
+ F*550
V*560
+ F*550
V*560
+ F*550
Work area
(_FS_TINY == 1)
V*560
+ F*36
V*560
+ F*36
V*560
+ F*36
V*560
+ F*32
V*560
+ F*36
V*560
+ F*32
V*560
+ F*32
V*560
+ F*36
V*560
+ F*36
V*560
+ F*36
V*560
+ F*36
+
+FatFs R0.10a options:
+_FS_READONLY     0 (R/W) or 1 (R/O)
+_FS_MINIMIZE     0 (Full function) or 3 (Minimized function)
+_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)
+_USE_LFN         0 (Disable LFN feature)
+_MAX_SS          512 (Fixed sector size)
+_FS_RPATH        0 (Disable relative path feature)
+_FS_LABEL        0 (Disable volume label functions)
+_VOLUMES         V (Number of logical drives to be used)
+_MULTI_PARTITION 0 (Single partition per drive)
+_FS_REENTRANT    0 (Disable thread safe)
+_FS_LOCK         0 (Disable file lock control)
+
+
+ +
+

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

+

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Function_FS_MINIMIZE_FS_READONLY_USE_STRFUNC_FS_RPATH_FS_LABEL_USE_MKFS_USE_FORWARD_MULTI_PARTITION
0123010  1/20120101010/12
f_mount
f_open
f_close
f_read
f_writex
f_syncx
f_lseekx
f_opendirxx
f_closedirxx
f_readdirxx
f_statxxx
f_getfreexxxx
f_truncatexxxx
f_unlinkxxxx
f_mkdirxxxx
f_chmodxxxx
f_utimexxxx
f_renamexxxx
f_chdirx
f_chdrivex
f_getcwdxx
f_getlabelx
f_setlabelxx
f_forwardx
f_mkfsxx
f_fdiskxxx
f_putcxx
f_putsxx
f_printfxx
f_getsx
+
+ +
+

長いファイル名

+

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バイトになるので、スタック等のサイズはそれを考慮した十分なサイズでなければなりません。

+ + + + + + + + +
LFN cfg on ARM7
コードページコードサイズ[bytes]
SBCS+3721
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できるため、無効にしてライセンス問題を回避することもできます。

+
+ +
+

日本語ファイル名の大文字変換

+

CP932(Shift_JIS)でかつ非LFN構成のときは、拡張文字の小文字(2バイト英字・キリル文字・ギリシャ文字)に対して大文字変換を行わず、小文字のままSFNエントリに記録・検索されます(日本語MSDOS仕様)。このため、非LFN構成で全角小文字を含むファイルを作成すると、NT系Windowsでそのファイルを開けなくなります。LFN構成では大文字変換を行います(NT系Windows仕様)。

+
+ +
+

Unicode入出力への対応

+

FatFs API上におけるファイル名等の文字列データの入出力は、デフォルトではANSI/OEMコードで行われますが、これをUnicode(UTF-16)に切り替えることもできます(_LFN_UNICODEオプションで設定)。つまり、これはFatFsがLFN機能に完全対応していることを意味します。Unicodeのファイル名に関する詳細は、ファイル名を参照してください。

+
+ +
+

リエントランシー

+

互いに異なるボリュームに対するファイル操作はリエントラントで、常に同時平行に動作できます。同じボリュームに対してはデフォルトではリエントラントではありませんが、_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()にあります。これらの関数は同じボリューム(または関連する物理ドライブ)に対してリエントラントではありません。これらの関数を使用するときは、アプリケーション・レベルで排他制御しなければなりません。

+

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

+
+ +
+

多重ファイル・アクセス

+

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

+

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

+
+ +
+

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

+

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

+

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

+

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

+

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

+

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

+

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

+

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

+
+ +
+

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

+

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

+

マルチ・セクタ書き込み

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

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

+

明示的なメモリ消去

+

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

+
+ +
+

クリチカル・セクション

+

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

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

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

+ +

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

+
+ +
+

APIの拡張的使用例

+

FatFs APIの拡張的使用例です。有用なコードがあった場合は、随時追加していきます。。

+
    +
  1. 追記モードでのオープン/新規作成
  2. +
  3. ディレクトリを空にする
  4. +
  5. ファイルに連続領域を割り当てる
  6. +
  7. ディスクI/Oモジュールの機能/互換性チェッカー
  8. +
  9. FATイメージ作成ツール
  10. +
+
+ +
+

FatFsのライセンスについて

+

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

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

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

+
+ +

戻る

+ + diff --git a/fatfs/doc/ja/chdir.html b/fatfs/doc/ja/chdir.html new file mode 100644 index 0000000..4a68fe2 --- /dev/null +++ b/fatfs/doc/ja/chdir.html @@ -0,0 +1,81 @@ + + + + + + + + +FatFs - f_chdir + + + + +
+

f_chdir

+

JgEfBNgύX܂B

+
+FRESULT f_chdir (
+  const TCHAR* path /* [IN] fBNgւ̃|C^ */
+);
+
+
+ +
+

+
+
path
+
ړΏۂ̃fBNgpXk'\0'I[̕w肵܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_NO_FILE, +FR_NO_PATH, +FR_INVALID_NAME, +FR_INVALID_DRIVE, +FR_NOT_ENABLED, +FR_NO_FILESYSTEM, +FR_NOT_ENOUGH_CORE +

+
+ + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

gp

+
+    /* JgEhCũJgEfBNgύX ([gdir1) */
+    f_chdir("/dir1");
+
+    /* hCu2̃JgEfBNgύX (efBNg) */
+    f_chdir("2:..");
+
+
+ +
+

Q

+

f_chdrive

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/chdrive.html b/fatfs/doc/ja/chdrive.html new file mode 100644 index 0000000..305b0a7 --- /dev/null +++ b/fatfs/doc/ja/chdrive.html @@ -0,0 +1,61 @@ + + + + + + + + +FatFs - f_chdrive + + + + +
+

f_chdrive

+

JgEhCuύX܂B

+
+FRESULT f_chdrive (
+  const TCHAR* path  /* [IN] ΏۃhCuw肵܂ */
+);
+
+
+ +
+

+
+
path
+
JgEhCuɐݒ肷_hCuԍw肷pXw肵܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_INVALID_DRIVE +

+
+ + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+

f_chdir

+
+ +

Return

+ + diff --git a/fatfs/doc/ja/chmod.html b/fatfs/doc/ja/chmod.html new file mode 100644 index 0000000..e0d113e --- /dev/null +++ b/fatfs/doc/ja/chmod.html @@ -0,0 +1,83 @@ + + + + + + + + +FatFs - f_chmod + + + + +
+

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 */
+);
+
+
+ +
+

+
+
path
+
ύXΏۂ̃IuWFNgpXk'\0'I[̕w肵܂B
+
attr
+
ݒ肷鑮Bw”\ȑ͎̒ʂŁȂgݍ킹Ŏw肵܂Bw肳Ȃ͉܂B
+ + + + + + +
lӖ
AM_RDO[hEI[
AM_ARCA[JCu
AM_SYSVXe
AM_HIDqhD
+
+
mask
+
ύX鑮̃}XNBw肵ݒ܂͉Aw肳Ȃ͏Ԃێ܂BattrƓlg܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_NO_FILE, +FR_NO_PATH, +FR_INVALID_NAME, +FR_WRITE_PROTECTED, +FR_NOT_ENABLED, +FR_NO_FILESYSTEM, +FR_TIMEOUT, +FR_LOCKED, +FR_NOT_ENOUGH_CORE +

+
+ + +
+

Ή

+

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

+
+ + +
+

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 new file mode 100644 index 0000000..cefd795 --- /dev/null +++ b/fatfs/doc/ja/close.html @@ -0,0 +1,66 @@ + + + + + + + + +FatFs - f_close + + + + +
+

f_close

+

t@C‚܂B

+
+FRESULT f_close (
+  FIL* fp     /* [IN] t@CEIuWFNgւ̃|C^ */
+);
+
+
+ +
+

+
+
fp
+
‚悤Ƃt@C̃t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_INVALID_OBJECT, +FR_TIMEOUT +

+
+ + +
+

+

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

+
+ + +
+

Ή

+

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 new file mode 100644 index 0000000..021e8c8 --- /dev/null +++ b/fatfs/doc/ja/closedir.html @@ -0,0 +1,64 @@ + + + + + + + + +FatFs - f_closedir + + + + +
+

f_closedir

+

fBNg‚܂B

+
+FRESULT f_closedir (
+  DIR* dp     /* [IN] fBNgEIuWFNgւ̃|C^ */
+);
+
+
+ +
+

+
+
dp
+
‚悤ƂfBNg̃fBNgEIuWFNg\̂ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_INT_ERR, +FR_INVALID_OBJECT, +FR_TIMEOUT +

+
+ + +
+

+

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

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+f_opendir, f_readdir, DIR +
+ +

߂

+ + diff --git a/fatfs/doc/ja/dinit.html b/fatfs/doc/ja/dinit.html new file mode 100644 index 0000000..9168c0b --- /dev/null +++ b/fatfs/doc/ja/dinit.html @@ -0,0 +1,46 @@ + + + + + + + + +FatFs - disk_initialize + + + + +
+

disk_initialize

+

Xg[WEfoCX܂B

+
+DSTATUS disk_initialize (
+  BYTE pdrv      /* [IN] hCuԍ */
+);
+
+
+ +
+

+
+
pdrv
+
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
+
+ + +
+

߂l

+

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

+
+ +
+

+

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

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/dioctl.html b/fatfs/doc/ja/dioctl.html new file mode 100644 index 0000000..30e49e3 --- /dev/null +++ b/fatfs/doc/ja/dioctl.html @@ -0,0 +1,95 @@ + + + + + + + + +FatFs - disk_ioctl + + + + +
+

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@ */
+);
+
+
+ +
+

+
+
pdrv
+
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
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

+ + + + + + + + +
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
+ +

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

+ + + + + + + + + + + + + + + + + +
[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)
+
+ + +
+

Ή

+

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

+
+ + +

߂

+ + diff --git a/fatfs/doc/ja/dread.html b/fatfs/doc/ja/dread.html new file mode 100644 index 0000000..18b4238 --- /dev/null +++ b/fatfs/doc/ja/dread.html @@ -0,0 +1,71 @@ + + + + + + + + +FatFs - disk_read + + + + +
+

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^ */
+);
+
+
+ +
+

+
+
pdrv
+
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
buff
+
Xg[WEfoCXǂݏof[^i[oCgzw肳܂B
+
sector
+
ǂݏoJnZN^ԍBLBAŎw肳܂B
+
count
+
ǂݏoZN^BFatFšĂяoł1`128͈̔͂Ɍ܂B
+
+
+ + +
+

߂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

+ +

ʓ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 new file mode 100644 index 0000000..a74fc30 --- /dev/null +++ b/fatfs/doc/ja/dstat.html @@ -0,0 +1,48 @@ + + + + + + + + +FatFs - disk_status + + + + +
+

disk_status

+

Xg[WEfoCX̏Ԃ擾܂B

+
+DSTATUS disk_status (
+  BYTE pdrv           /* [IN] hCuԍ */
+);
+
+
+ +
+

+
+
pdrv
+
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
+
+ + +
+

߂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
+
STA_NODISK
+
fBA݂ȂƂtOBfBAOĂԂ̓ZbgAZbgĂԂ̓NA܂BŒfBXNł͏ɃNA܂BȂÃtOFatFsW[ł͎QƂ܂B
+
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 new file mode 100644 index 0000000..41cebeb --- /dev/null +++ b/fatfs/doc/ja/dwrite.html @@ -0,0 +1,76 @@ + + + + + + + + +FatFs - disk_write + + + + +
+

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^ */
+);
+
+
+ +
+

+
+
pdrv
+
Ώۂ̃foCXhCuԍ(0-9)w肳܂B
+
buff
+
Xg[WEfoCXɏރZN^Ef[^i[ꂽoCgzw肳܂BoCǵAZN^ETCY*countƂȂ܂B
+
sector
+
݂JnZN^ԍBLBAŎw肳܂B
+
count
+
ރZN^BFatFšĂяoł1`128͈̔͂Ɍ܂B
+
+
+ + +
+

߂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

+
+ + +
+

Ή

+

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

+
+ + +

߂

+ + diff --git a/fatfs/doc/ja/eof.html b/fatfs/doc/ja/eof.html new file mode 100644 index 0000000..b1f0e1a --- /dev/null +++ b/fatfs/doc/ja/eof.html @@ -0,0 +1,62 @@ + + + + + + + + +FatFs - f_eof + + + + +
+

f_eof

+

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

+
+int f_eof (
+  FIL* fp   /* [IN] t@CEIuWFNg */
+);
+
+
+ + +
+

+
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

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

+
+ + +
+

+

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

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

Ή

+

Ɏgp”\B

+
+ + +
+

Q

+

f_open, f_lseek, FIL

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/error.html b/fatfs/doc/ja/error.html new file mode 100644 index 0000000..ccd2f07 --- /dev/null +++ b/fatfs/doc/ja/error.html @@ -0,0 +1,62 @@ + + + + + + + + +FatFs - f_error + + + + +
+

f_error

+

G[̗L𒲂ׂ܂B

+
+int f_error (
+  FIL* fp   /* [IN] t@CEIuWFNg */
+);
+
+
+ + +
+

+
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

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

+
+ + +
+

+

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

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

Ή

+

Ɏgp”\B

+
+ + +
+

Q

+

f_open, FIL

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/fattime.html b/fatfs/doc/ja/fattime.html new file mode 100644 index 0000000..028ad53 --- /dev/null +++ b/fatfs/doc/ja/fattime.html @@ -0,0 +1,57 @@ + + + + + + + + +FatFs - get_fattime + + + + +
+

get_fattime

+

ݎ擾܂B

+
+DWORD get_fattime (void);
+
+
+ + +
+

߂l

+

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

+
+
bit31:25
+
1980NN_ƂN 0..127 ŃZbgB
+
bit24:21
+
1..12 ̒lŃZbgB
+
bit20:16
+
1..31 ̒lŃZbgB
+
bit15:11
+
0..23 ̒lŃZbgB
+
bit10:5
+
0..59 ̒lŃZbgB
+
bit4:0
+
b/2 0..29 ̒lŃZbg
+
+
+ + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +

߂

+ + diff --git a/fatfs/doc/ja/fdisk.html b/fatfs/doc/ja/fdisk.html new file mode 100644 index 0000000..27f78b3 --- /dev/null +++ b/fatfs/doc/ja/fdisk.html @@ -0,0 +1,97 @@ + + + + + + + + +FatFs - f_fdisk + + + + +
+

f_fdisk

+

hCu𕪊܂B

+
+FRESULT f_fdisk (
+  BYTE  pdrv,         /* [IN] hCuԍ */
+  const DWORD part[], /* [IN] }bvEe[u */
+  void* work          /* [-] [NGA */
+);
+
+
+ +
+

+
+
pdrv
+
hCũhCuԍw肵܂B
+
part[]
+
}bvEe[uւ̃|C^w肵܂B
+
work
+
[NGAւ̃|C^w肵܂BTCY_MAX_SSoCgKvłB
+
+
+ +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_NOT_READY, +FR_WRITE_PROTECTED, +FR_INVALID_PARAMETER +

+
+ +
+

+

̊֐́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

+
+ +
+

Ή

+

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

+
+ +
+

gp

+
+    /* [U`̃{[Ǘe[u (_MULTI_PARTITION == 1 ̂ƂKv) */
+
+    PARTITION VolToPart[] = {
+        {0, 1},    /* _hCu 0 ==> hCu 0, 1 */
+        {0, 2},    /* _hCu 1 ==> hCu 0, 2 */
+        {1, 0}     /* _hCu 2 ==> hCu 1, o */
+    };
+
+
+    /* VhCu(0)̏ */
+
+    FATFS fs;
+    DWORD plist[] = {50, 50, 0, 0};  /* 2 */
+    BYTE work[_MAX_SS];
+
+    f_fdisk(0, plist, work);  /* hCu 0 ̕ */
+
+    f_mount(&fs "0:", 0);
+    f_mkfs("0:", 0, 0);       /* _hCu 0 ̃tH[}bg. ͖.  */
+    f_mount(0, "0:", 0);
+
+    f_mount(&fs, "1:", 0);
+    f_mkfs("1:", 0, 0);       /* _hCu 0 ̃tH[}bg. ͖.  */
+    f_mount(0, "1:", 0);
+
+
+
+ +
+

See Also

+

Volume management, f_mkfs

+
+ +

Return

+ + diff --git a/fatfs/doc/ja/filename.html b/fatfs/doc/ja/filename.html new file mode 100644 index 0000000..c57d7aa --- /dev/null +++ b/fatfs/doc/ja/filename.html @@ -0,0 +1,76 @@ + + + + + + + + +FatFs - パス名のフォーマット + + + +

パス名のフォーマット

+
+

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

+

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

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

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

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

+
+ +


+
+

Unicode API

+

ファイル関数の入出力のうちファイル名やパス名を指定する引数の型は、TCHARで定義されていますが、これは通常はcharのエリアスになっています。そして、_CODE_PAGEで指定されるANSI/OEMコード(SBCSまたはDBCS)の文字列として扱われます。ファイル名入出力をUnicodeとする構成(_LFN_UNICODE == 1)にしたときは、TCHARはワイド文字(WCHAR, unsigned short)に切り替わり、パス名の入出力にUnicodeを使用するようになります。これによりLFN規格に完全対応となり、ANSI/OEMコードにない文字(たとえば ✝☪✡☸☭など)も使用できます。この設定は文字列入出力関数のデータ型とファイル上のエンコーディングにも影響を与えます。リテラル文字列を定義するとき、次に示すように_T(s)および_TEXT(s)マクロを使ってANSI/OEMとUnicodeを自動切り替えすることができます。

+
+ f_open(fp, "filename.txt", FA_READ);      /* ANSI/OEM専用コード */
+ f_open(fp, L"filename.txt", FA_READ);     /* Unicode専用コード */
+ f_open(fp, _T("filename.txt"), FA_READ);  /* 両用コード(自動切り替え) */
+
+
+ +


+
+

ボリューム管理

+

デフォルトの構成では、それぞれの論理ドライブは同じ番号の物理ドライブに1:1で結びつけられていて、自動検出機能によりその物理ドライブ上の一つのFATボリュームがマウントされます。FATボリュームの検出は、セクタ0、第一区画~第四区画の順に行われます。

+

_MULTI_PARTITIONに1を指定すると、それぞれの論理ドライブに対して個別に物理ドライブ番号と区画を指定できるようになります。この構成では、論理ドライブと区画の対応を解決するためのテーブルを次に示すように定義する必要があります。

+
+例:論理ドライブ0~2を物理ドライブ0(非リムーバブル)の3つの基本区画に割り当て、
+   論理ドライブ3を物理ドライブ1(リムーバブル)に割り当てる場合。
+
+PARTITION VolToPart[] = {
+    {0, 1},     /* 論理ドライブ 0 ==> 物理ドライブ 0, 第1区画 */
+    {0, 2},     /* 論理ドライブ 1 ==> 物理ドライブ 0, 第2区画 */
+    {0, 3},     /* 論理ドライブ 2 ==> 物理ドライブ 0, 第3区画 */
+    {1, 0}      /* 論理ドライブ 3 ==> 物理ドライブ 1, 自動検出 */
+};
+
+論理ドライブと物理ドライブの関係
+
+

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

+
+ + + diff --git a/fatfs/doc/ja/forward.html b/fatfs/doc/ja/forward.html new file mode 100644 index 0000000..ffb2e60 --- /dev/null +++ b/fatfs/doc/ja/forward.html @@ -0,0 +1,140 @@ + + + + + + + + +FatFs - f_forward + + + + +
+

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 */
+);
+
+
+ +
+

+
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
func
+
f[^n[U`֐ւ̃|C^w肵܂B̊֐̎dl̓TvQƂĂB
+
btf
+
]oCg(0`UINT̍ől)w肵܂B
+
bf
+
ۂɓ]ꂽoCgi[ϐw|C^w肵܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_DENIED, +FR_INVALID_OBJECT, +FR_TIMEOUT +

+
+ + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

gpiI[fBIĐj

+
+/*-----------------------------------------------------------------------*/
+/* f_forward֐Ă΂f[^M֐̗                           */
+/*-----------------------------------------------------------------------*/
+
+UINT out_stream (   /* ߂l: ]ꂽoCg܂̓Xg[̏ */
+    const BYTE *p,  /* ]f[^w|C^ */
+    UINT btf        /* >0: ]s(oCg). 0: Xg[̏Ԃ𒲂ׂ */
+)
+{
+    UINT cnt = 0;
+
+
+    if (btf == 0) {     /* ZXv */
+        /* Xg[̏ԂԂ (0: rW[, 1: fB) */
+        /* UAfBԂA]vŏȂƂ1oCg */
+        /* ]Ȃ f_forward֐ FR_INT_ERR ƂȂB */
+        if (FIFO_READY) cnt = 1;
+    }
+    else {              /* ]v */
+        do {    /* SẴoCg]邩AXg[rW[ɂȂ܂ŌJԂ */
+            FIFO_PORT = *p++;
+            cnt++;
+        } while (cnt < btf && FIFO_READY);
+    }
+
+    return cnt;
+}
+
+
+/*-----------------------------------------------------------------------*/
+/* f_forward֐̎gp                                                 */
+/*-----------------------------------------------------------------------*/
+
+FRESULT play_file (
+    char *fn        /* ĐI[fBIEt@Cw|C^ */
+)
+{
+    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;
+}
+
+
+ + +
+

Q

+

f_open, fgets, f_write, f_close, FIL

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/getcwd.html b/fatfs/doc/ja/getcwd.html new file mode 100644 index 0000000..b48f3fc --- /dev/null +++ b/fatfs/doc/ja/getcwd.html @@ -0,0 +1,70 @@ + + + + + + + + +FatFs - f_getcwd + + + + +
+

f_getcwd

+

JgEfBNg𓾂܂B

+
+FRESULT f_getcwd (
+  TCHAR* buff, /* [OUT] obt@ */
+  UINT len     /* [IN] obt@ETCY */
+);
+
+
+ +
+

+
+
buff
+
JgEfBNg̃pXi[obt@
+
len
+
TCHARPʂ̃obt@ETCY
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_NOT_ENABLED, +FR_NO_FILESYSTEM, +FR_TIMEOUT, +FR_NOT_ENOUGH_CORE +

+
+ + +
+

+

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

+
+ + +
+

Ή

+

_FS_RPATH == 2̂Ƃgp”\łB

+
+ + +
+

Q

+

f_chdrive, f_chdir

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/getfree.html b/fatfs/doc/ja/getfree.html new file mode 100644 index 0000000..4de40de --- /dev/null +++ b/fatfs/doc/ja/getfree.html @@ -0,0 +1,95 @@ + + + + + + + + +FatFs - f_getfree + + + + +
+

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^ */
+);
+
+
+ +
+

+
+
path
+
ׂΏۂ̘_hCupXk'\0'I[̕ւ̃|C^w肵܂Bk̓JgEhCuӖ܂B
+
nclst
+
󂫃NX^i[DWORD^ϐւ̃|C^w肵܂B
+
fatfs
+
ΏۃhCũt@CEVXeEIuWFNgw|C^Ԃ܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_INVALID_DRIVE, +FR_NOT_ENABLED, +FR_NO_FILESYSTEM, +FR_TIMEOUT +

+
+ + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

gp

+
+    FATFS *fs;
+    DWORD fre_clust, fre_sect, tot_sect;
+
+
+    /* hCu1̃{[Ƌ󂫃NX^𓾂 */
+    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^Ɖ) */
+    printf("%10lu KiB total drive space.\n%10lu KiB available.\n",
+           tot_sect / 2, fre_sect / 2);
+
+
+ + +
+

Q

+FATFS +
+ +

߂

+ + diff --git a/fatfs/doc/ja/getlabel.html b/fatfs/doc/ja/getlabel.html new file mode 100644 index 0000000..957d212 --- /dev/null +++ b/fatfs/doc/ja/getlabel.html @@ -0,0 +1,82 @@ + + + + + + + + +FatFs - f_getlabel + + + + +
+

f_getlabel

+

{[Ex擾܂B

+
+FRESULT f_getlabel (
+  const TCHAR* path,  /* [IN] ΏۃhCu */
+  TCHAR* label,       /* [OUT] {[i[obt@ */
+  DWORD* vsn          /* [OUT] {[EVAԍi[ϐ */
+);
+
+
+ +
+

+
+
path
+
ΏۂƂȂ_hCupXk'\0'I[̕ւ̃|C^w肵܂Bk̏ꍇ́AftHgEhCuw肵ƂɂȂ܂B
+
label
+
{[i[zւ̃|C^w肵܂BȂƂ12vf̃TCYKvłB{[Ȃꍇ̓k񂪕Ԃ܂B̏񂪕svȂƂ̓kE|C^w肵ĂB
+
vsn
+
{[EVAԍi[DWORD^ϐւ̃|C^w肵܂B̏񂪕svȂƂ̓kE|C^w肵ĂB
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_INVALID_DRIVE, +FR_NOT_ENABLED, +FR_NO_FILESYSTEM, +FR_TIMEOUT +

+
+ + +
+

Ή

+

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

+
+ + +
+

gp

+
+    char str[12];
+
+    /* ftHgEhCũ{[𓾂 */
+    f_getlabel("", str, 0);
+
+    /* hCu2̃{[𓾂 */
+    f_getlabel("2:", str, 0);
+
+
+ + +
+

Q

+f_setlabel +
+ + +

߂

+ + diff --git a/fatfs/doc/ja/gets.html b/fatfs/doc/ja/gets.html new file mode 100644 index 0000000..2babef0 --- /dev/null +++ b/fatfs/doc/ja/gets.html @@ -0,0 +1,65 @@ + + + + + + + + +FatFs - f_gets + + + + +
+

f_gets

+

t@C當ǂݏo܂B

+
+TCHAR* f_gets (
+  TCHAR* buff, /* [OUT] obt@ */
+  int len,     /* [IN] obt@̃TCY */
+  FIL* fp      /* [IN] t@CEIuWFNg */
+);
+
+
+ +
+

+
+
buff
+
ǂݏoobt@w|C^w肵܂B
+
len
+
obt@̃TCYvfŎw肵܂B
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

֐buffԂ܂B

+
+ + +
+

+

̊֐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

+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+

f_open, f_read, f_putc, f_puts, f_printf, f_close, FIL

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/lseek.html b/fatfs/doc/ja/lseek.html new file mode 100644 index 0000000..5578852 --- /dev/null +++ b/fatfs/doc/ja/lseek.html @@ -0,0 +1,129 @@ + + + + + + + + +FatFs - f_lseek + + + + +
+

f_lseek

+

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

+
+FRESULT f_lseek (
+  FIL* fp,    /* [IN] t@CEIuWFNg\̂ւ̃|C^ */
+  DWORD ofs   /* [IN] ړItZbg */
+);
+
+
+ +
+

+
+
fp
+
ΏۂƂȂt@CEIuWFNg\̂ւ̃|C^w肵܂B
+
ofs
+
ړ̃ItZbg([h/CgE|C^)lBt@C擪̃ItZbgoCgPʂŎw肵܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_INVALID_OBJECT, +FR_TIMEOUT, +FR_NOT_ENOUGH_CORE +

+
+ + +
+

+

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

+ +

_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

+
+ + +
+

Ή

+

_FS_MINIMIZE < 3̂Ƃgp”\łB

+
+ + +
+

gp

+
+    /* t@CJ */
+    fp = malloc(sizeof (FIL));
+    res = f_open(fp, "file.dat", FA_READ|FA_WRITE);
+    if (res) ...
+
+    /* t@CEItZbg5000ֈړ */
+    res = f_lseek(fp, 5000);
+
+    /* t@CI[ֈړ(t@CNjL̏) */
+    res = f_lseek(fp, f_size(fp));
+
+    /* 3000oCgi߂ */
+    res = f_lseek(fp, f_tell(fp) + 3000);
+
+    /* 2000oCg߂ (bvAEhɒ) */
+    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_lseek(fp, MAX_SIZE);             /* \ȃNX^̐s蓖 */
+    if (res || f_tell(fp) != PRE_SIZE) ...   /* t@Cgꂽ`FbN */
+
+    res = f_lseek(fp, DATA_START);           /* f[^EXg[̋L^(AP[VfBC) */
+    ...
+
+    res = f_truncate(fp);                    /* sv̈̐؂̂ */
+    res = f_lseek(fp, 0);                    /* wb_̋L^ */
+    ...
+
+    res = f_close(fp);
+
+
+/* V[N@\g */
+
+    DWORD clmt[SZ_TBL];                    /* NE}bvEe[ui[obt@ */
+
+    res = f_lseek(fp, ofs1);               /* ʏV[N (I[vAcltblNULLɏ) */
+
+    fp->cltbl = clmt;                      /* V[N@\̗L */
+    clmt[0] = SZ_TBL;                      /* 擪vfɔzvfZbg */
+    res = f_lseek(fp, CREATE_LINKMAP);     /* CLMT̍쐬 */
+    ...
+
+    res = f_lseek(fp, ofs2);               /* ȍ~Af_read/f_write/f_lseekFATANZX͔Ȃ */
+
+
+ + +
+

Q

+

f_open, FIL

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/mkdir.html b/fatfs/doc/ja/mkdir.html new file mode 100644 index 0000000..ef107d3 --- /dev/null +++ b/fatfs/doc/ja/mkdir.html @@ -0,0 +1,80 @@ + + + + + + + + +FatFs - f_mkdir + + + + +
+

f_mkdir

+

fBNg쐬܂B

+
+FRESULT f_mkdir (
+  const TCHAR* path /* [IN] 쐬fBNgւ̃|C^ */
+);
+
+
+ +
+

+
+
path
+
쐬fBNgpXk'\0'I[̕ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_NO_PATH, +FR_INVALID_NAME, +FR_DENIED, +FR_EXIST, +FR_WRITE_PROTECTED, +FR_INVALID_DRIVE, +FR_NOT_ENABLED, +FR_NO_FILESYSTEM, +FR_TIMEOUT, +FR_NOT_ENOUGH_CORE +

+
+ + +
+

+

̃fBNg쐬܂B

+
+ + +
+

Ή

+

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

+
+ + +
+

gp

+
+    res = f_mkdir("sub1");
+    if (res) die(res);
+    res = f_mkdir("sub1/sub2");
+    if (res) die(res);
+    res = f_mkdir("sub1/sub2/sub3");
+    if (res) die(res);
+
+
+ +

߂

+ + diff --git a/fatfs/doc/ja/mkfs.html b/fatfs/doc/ja/mkfs.html new file mode 100644 index 0000000..7e09696 --- /dev/null +++ b/fatfs/doc/ja/mkfs.html @@ -0,0 +1,73 @@ + + + + + + + + +FatFs - f_mkfs + + + + +
+

f_mkfs

+

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

+
+FRESULT f_mkfs (
+  const TCHAR* path, /* [IN] _hCuԍ */
+  BYTE  sfd,         /* [IN] 쐬@ */
+  UINT  au           /* [IN] NXE^TCY */
+);
+
+
+ +
+

+
+
path
+
tH[}bgΏۂ̘_hCupXk'\0'I[̕ւ̃|C^w肵܂BhCuԍ܂܂Ȃꍇ́AJgEhCuӖ܂B
+
sfd
+
p[e[V`B(0(FDISK) ܂ 1(SFD))
+
au
+
NX^ETCYoCgPʂŎw肵܂Bl͑ΏۃhCũZN^ETCYn{(n = 1`128ŁA2̗ݏ)łȂ΂Ȃ܂B0Ȃǂ̖lw肵ꍇA{[̃TCYɉftHg̃NX^ETCYI܂B
+
+
+ +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_NOT_READY, +FR_NOT_ENABLED, +FR_MKFS_ABORTED, +FR_INVALID_PARAMETER +

+
+ +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+

{[Ǘ, f_fdisk

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/mount.html b/fatfs/doc/ja/mount.html new file mode 100644 index 0000000..c6bc9f1 --- /dev/null +++ b/fatfs/doc/ja/mount.html @@ -0,0 +1,82 @@ + + + + + + + + +FatFs - f_mount + + + + +
+

f_mount

+

_hCuɃt@CEVXeEIuWFNgo^E܂B

+
+FRESULT f_mount (
+  FATFS*       fs,     /* [IN] t@CEVXeEIuWFNg */
+  const TCHAR* path,   /* [IN] _hCuԍ */
+  BYTE         opt     /* [IN] IvV */
+);
+
+
+ +
+

+
+
fs
+
o^t@CEVXeEIuWFNgւ̃|C^B
+
path
+
ΏۂƂȂ_hCupXk'\0'I[̕ւ̃|C^w肵܂BhCuԍ܂܂Ȃꍇ́AftHgEhCuw肵ƂɂȂ܂B
+
opt
+
t@CEVXeEIuWFNg̓o^ƓɃ}Egsǂw肷tOBo^̂Ƃ͈Ӗ܂B
+
+
+ +
+

߂l

+

+FR_OK, +FR_INVALID_DRIVE, +FR_DISK_ERR, +FR_NOT_READY, +FR_NO_FILESYSTEM +

+
+ + +
+

+

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

+
    +
  1. Ώۂ̘_hCupath瓾B
  2. +
  3. ɓo^Ăt@CEVXeEIuWFNg̓NAAo^B
  4. +
  5. fsLȃ|C^̂Ƃ́Ãt@CEVXeEIuWFNgNAo^B
  6. +
  7. }Eg삪w肳ĂƂ́AsB
  8. +
+

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

+ +

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

+
+ + +
+

Ή

+

SĂ̍\Ŏgp”\łB

+
+ + +
+

Q

+

f_open, FATFS

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/open.html b/fatfs/doc/ja/open.html new file mode 100644 index 0000000..a4c4a18 --- /dev/null +++ b/fatfs/doc/ja/open.html @@ -0,0 +1,171 @@ + + + + + + + + +FatFs - f_open + + + + +
+

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 */
+);
+
+
+ +
+

+
+
fp
+
V쐬t@CEIuWFNg\̂ւ̃|C^w肵܂Bȍ~Ãt@C‚܂ł̃t@CEIuWFNggpăt@C܂B
+
path
+
Jt@Ct@Ck'\0'I[̕ւ̃|C^w肵܂B
+
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
+
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_NO_FILE, +FR_NO_PATH, +FR_INVALID_NAME, +FR_DENIED, +FR_EXIST, +FR_INVALID_OBJECT, +FR_WRITE_PROTECTED, +FR_INVALID_DRIVE, +FR_NOT_ENABLED, +FR_NO_FILESYSTEM, +FR_TIMEOUT, +FR_LOCKED, +FR_NOT_ENOUGH_CORE, +FR_TOO_MANY_OPEN_FILES +

+
+ + +
+

+

̃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

+
+ + +
+

Ή

+

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

+
+ + +
+

gp

+
+/* eLXgt@Cǂݏoĕ\ */
+
+FATFS FatFs;   /* _hCũ[NEGA(t@CEVXeEIuWFNg) */
+
+int main (void)
+{
+    FIL fil;       /* t@CEIuWFNg */
+    char line[82]; /* sobt@ */
+    FRESULT fr;    /* ߂l */
+
+
+    /* ftHgEhCuɃ[NGA^ */
+    f_mount(&FatFs, "", 0);
+
+    /* eLXgEt@CJ */
+    fr = f_open(&fil, "message.txt", FA_READ);
+    if (fr) return (int)fr;
+
+    /* 1s“ǂݏoĕ\ */
+    while (f_gets(line, sizeof line, &fil))
+        printf(line);
+
+    /* t@C‚ */
+    f_close(&fil);
+
+    return 0;
+}
+
+
+/* hCu1̃t@C "file.bin" hCu0փRs[ */
+
+int main (void)
+{
+    FATFS fs[2];         /* _hCũ[NGA(t@CEVXeEIuWFNg) */
+    FIL fsrc, fdst;      /* t@CEIuWFNg */
+    BYTE buffer[4096];   /* File copy buffer */
+    FRESULT fr;          /* FatFs function common result code */
+    UINT br, bw;         /* File R/W count */
+
+    /* hCu0,1Ƀ[NEGA^ */
+    f_mount(&fs[0], "0:", 0);
+    f_mount(&fs[1], "1:", 0);
+
+    /* hCu1̃Rs[t@CJ */
+    res = f_open(&fsrc, "1:file.dat", FA_OPEN_EXISTING | FA_READ);
+    if (fr) return (int)fr;
+
+    /* hCu0ɃRs[t@C쐬 */
+    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 */
+    }
+
+    /* SẴt@C‚ */
+    f_close(&fsrc);
+    f_close(&fdst);
+
+    /* [NEGAJ */
+    f_mount(NULL, "0:", 0);
+    f_mount(NULL, "1:", 0);
+
+    return (int)fr;
+}
+
+
+ + +
+

Q

+

f_read, f_write, f_close, FIL, FATFS

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/opendir.html b/fatfs/doc/ja/opendir.html new file mode 100644 index 0000000..9309160 --- /dev/null +++ b/fatfs/doc/ja/opendir.html @@ -0,0 +1,76 @@ + + + + + + + + +FatFs - f_opendir + + + + +
+

f_opendir

+

fBNgJ܂B

+
+FRESULT f_opendir (
+  DIR* dp,           /* [OUT] fBNgEuWFNg\̂ւ̃|C^ */
+  const TCHAR* path  /* [IN] fBNgւ̃|C^ */
+);
+
+
+ +
+

+
+
dp
+
̃fBNgEIuWFNg\̂ւ̃|C^w肵܂B
+
path
+
I[vfBNgpXk'\0'I[̕ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

+FR_OK, +FR_DISK_ERR, +FR_INT_ERR, +FR_NOT_READY, +FR_NO_PATH, +FR_INVALID_NAME, +FR_INVALID_OBJECT, +FR_INVALID_DRIVE, +FR_NOT_ENABLED, +FR_NO_FILESYSTEM, +FR_TIMEOUT, +FR_NOT_ENOUGH_CORE, +FR_TOO_MANY_OPEN_FILES +

+ +
+ + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+

f_readdir, f_closedir, DIR

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/printf.html b/fatfs/doc/ja/printf.html new file mode 100644 index 0000000..b5c22e0 --- /dev/null +++ b/fatfs/doc/ja/printf.html @@ -0,0 +1,93 @@ + + + + + + + + +FatFs - f_printf + + + + +
+

f_printf

+

t@Cɏ݂܂B

+
+int f_printf (
+  FIL* fp,           /* [IN] t@CEIuWFNg */
+  const TCHAR* fmt,  /* [IN] 䕶 */
+  ...
+);
+
+
+ +
+

+
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
fmt
+
k'\0'I[̏䕶w|C^w肵܂Bk͏܂܂B
+
...
+
IvV̈B
+ +
+
+ + +
+

߂l

+

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

+
+ + +
+

+

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

+ +
+ + +
+

Ή

+

_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

+
+ + +
+

gp

+
+    f_printf(&fil, "%d", 1234);            /* "1234" */
+    f_printf(&fil, "%6d,%3d%%", -200, 5);  /* "  -200,  5%" */
+    f_printf(&fil, "%ld", 12345L);         /* "12345" */
+    f_printf(&fil, "%06d", 25);            /* "000025" */
+    f_printf(&fil, "%06d", -25);           /* "000-25" */
+    f_printf(&fil, "%-6d", 25);            /* "25    " */
+    f_printf(&fil, "%u", -1);              /* "65535" or "4294967295" */
+    f_printf(&fil, "%04x", 0xAB3);         /* "0ab3" */
+    f_printf(&fil, "%08LX", 0x123ABCL);    /* "00123ABC" */
+    f_printf(&fil, "%016b", 0x550F);       /* "0101010100001111" */
+    f_printf(&fil, "%s", "String");        /* "String" */
+    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 */
+
+
+ + +
+

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 new file mode 100644 index 0000000..724f4c2 --- /dev/null +++ b/fatfs/doc/ja/putc.html @@ -0,0 +1,62 @@ + + + + + + + + +FatFs - f_putc + + + + +
+

f_putc

+

t@Cɕ݂܂B

+
+int f_putc (
+  TCHAR chr,  /* [IN] ޕ */
+  FIL* fp     /* [IN] t@CEIuWFNg */
+);
+
+
+ +
+

+
+
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

+
+ + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+

f_open, f_puts, f_printf, f_gets, f_close, FIL

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/puts.html b/fatfs/doc/ja/puts.html new file mode 100644 index 0000000..d815311 --- /dev/null +++ b/fatfs/doc/ja/puts.html @@ -0,0 +1,62 @@ + + + + + + + + +FatFs - f_puts + + + + +
+

f_puts

+

t@Cɕ݂܂B

+
+int f_puts (
+  const TCHAR* str,  /* [IN] ޕ */
+  FIL* fp            /* [IN] t@CEIuWFNg */
+);
+
+
+ +
+

+
+
str
+
ރk'\0'I[̕w|C^w肵܂Bk͏܂܂B
+
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

+
+ + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + + + +

߂

+ + diff --git a/fatfs/doc/ja/rc.html b/fatfs/doc/ja/rc.html new file mode 100644 index 0000000..8bcfb24 --- /dev/null +++ b/fatfs/doc/ja/rc.html @@ -0,0 +1,85 @@ + + + + + + + + +FatFs - 戻り値 + + + +

ファイル関数の戻り値

+

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

+ +
+
FR_OK (0)
+
関数は成功した。
+
FR_DISK_ERR
+
下位レイヤ(disk_read(), disk_write(), disk_ioctl()関数)で回復不能なエラーが発生した。
※開かれたファイルの操作においてこのエラーが発生すると、そのファイル・オブジェクトはアボート状態となり、クローズ以外のの操作ができなくなります。
+
FR_INT_ERR
+
内部処理の健全性に異常が検出された。原因としては次のようなことが考えられます。 +
    +
  • ボリューム上のFAT構造にエラーがある。
  • +
  • スタック不足や不正なメモリ操作等によるワーク・エリアの破壊。多くはこれが原因。
  • +
+※開かれたファイルの操作においてこのエラーが発生すると、そのファイル・オブジェクトはアボート状態となり、クローズ以外の操作ができなくなります。
+
FR_NOT_READY
+
物理ドライブが動作可能な状態にない。または、ドライブの初期化に失敗した。
+
FR_NO_FILE
+
指定されたファイルが見つからなかった。
+
FR_NO_PATH
+
指定されたパスが見つからなかった。
+
FR_INVALID_NAME
+
指定された文字列がパス名のフォーマットとして無効。
+
FR_DENIED
+
そのオブジェクトに対する操作の拒否。原因としては次のようなことが考えられます。 +
    +
  • 書き込み禁止属性(AM_RDO)を持つファイルを書き込みモードで開こうとした。
  • +
  • 書き込み禁止属性を持つファイルやディレクトリを削除しようとした。
  • +
  • 空でないディレクトリまたはカレント・ディレクトリを削除しようとした。
  • +
  • FA_READフラグを付けずに開いたファイルに対して読み出しを行った。
  • +
  • FA_WRITEフラグを付けずに開いたファイルに対して書き込みまたはそれに類する操作を行った。
  • +
  • ボリュームまたはディレクトリ・テーブルが満杯でファイルやディレクトリを作成できなかった。
  • +
+
+
FR_EXIST
+
新しく作成しようとしたオブジェクトと同じ名前のオブジェクトが既に存在する。
+
FR_INVALID_OBJECT
+
指定されたファイル・オブジェクトやディレクトリ・オブジェクトが無効(オープンされていない、既に閉じられた、破損しているなど)、またはヌル・ポインタが渡された。また、開かれたままのオブジェクトは、それの属するボリュームのマウント動作により無効となります。
+
FR_WRITE_PROTECTED
+
物理ドライブが書き込み禁止状態のとき、書き込みを伴う操作を行おうとした。
+
FR_INVALID_DRIVE
+
パス名中に指定されたドライブ番号が無効、またはパス名にヌル・ポインタが渡された。(関連オプション: _VOLUMES)
+
FR_NOT_ENABLED
+
そのボリュームの操作に必要なワーク・エリア(ファイル・システム・オブジェクト構造体)が与えられていない。
+
FR_NO_FILESYSTEM
+
物理ドライブ上に有効なFATボリュームが見つからなかった。
+
FR_MKFS_ABORTED
+
f_mkfs()の処理が開始前に中断された。原因としては次のようなことが考えられます。 +
    +
  • ボリュームが小さすぎる。
  • +
  • FATタイプの計算に矛盾が見つかった。クラスタ数がFATタイプの境界付近になるときに発生する場合があります。
  • +
  • その論理ドライブに対応する区画が見つからなかった。(関連オプション: _MULTI_PARTITION)
  • +
+
+
FR_TIMEOUT
+
再入制御による待ち時間が定義された時間を越えたため、関数は実行されなかった。(関連オプション: _TIMEOUT)
+
FR_LOCKED
+
多重アクセス排他機能により、そのファイルやディレクトリに対して行おうとしたアクセスが拒否された。(関連オプション: _FS_LOCK)
+
FR_NOT_ENOUGH_CORE
+
メモリ不足による失敗。原因としては次のようなことが考えられます。 +
    +
  • LFN操作バッファの動的確保に失敗した。(関連オプション: _USE_LFN)
  • +
  • 与えられた配列のサイズが実際に必要なサイズに対して不足している。
  • +
+
+
FR_TOO_MANY_OPEN_FILES
+
同時オープン可能なファイル数を越えてファイルを開こうとした。(関連オプション: _FS_LOCK)
+
FR_INVALID_PARAMETER
+
与えられたパラメータが無効または矛盾している。
+
+ + + diff --git a/fatfs/doc/ja/read.html b/fatfs/doc/ja/read.html new file mode 100644 index 0000000..04ef8b3 --- /dev/null +++ b/fatfs/doc/ja/read.html @@ -0,0 +1,75 @@ + + + + + + + + +FatFs - f_read + + + + +
+

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 */
+);
+
+
+ +
+

+
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
buff
+
ǂݏof[^i[obt@w|C^w肵܂B
+
btr
+
ǂݏooCg(0`UINT^̍ől)w肵܂B
+
br
+
ۂɓǂݏoꂽoCgi[ϐw|C^w肵܂B߂l͊֐̐ۂɂ炸ɗLłB
+
+
+ + + + + +
+

+

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

+
+ + +
+

Ή

+

SĂ̍\Ŏgp”\łB

+
+ + + + +

߂

+ + diff --git a/fatfs/doc/ja/readdir.html b/fatfs/doc/ja/readdir.html new file mode 100644 index 0000000..bd1c34e --- /dev/null +++ b/fatfs/doc/ja/readdir.html @@ -0,0 +1,126 @@ + + + + + + + + +FatFs - f_readdir + + + + +
+

f_readdir

+

fBNgڂǂݏo܂B

+
+FRESULT f_readdir (
+  DIR* dp,      /* [IN] fBNgEuWFNg\̂ւ̃|C^ */
+  FILINFO* fno  /* [OUT] t@C\̂ւ̃|C^ */
+);
+
+
+ +
+

+
+
dp
+
LȃfBNgEIuWFNg\̂ւ̃|C^w肵܂B
+
fno
+
ǂݏofBNgڂi[t@C\̂ւ̃|C^w肵܂B
+
+
+ + + + + +
+

+

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

+
    +
  • fBNgڂLFN񂪑݂ȂB
  • +
  • LFN̒ɑ΂LFNi[obt@܂LFNobt@̃TCYs\B
  • +
  • LFNɌ݂OEMR[hɑ݂Ȃ܂܂ĂB(Unicode\̂Ƃ)
  • +
+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

gp

+
+FRESULT scan_files (
+    char* path        /* Jnm[h ([NGAƂĂgp) */
+)
+{
+    FRESULT res;
+    FILINFO fno;
+    DIR dir;
+    int i;
+    char *fn;   /* Unicode\z */
+#if _USE_LFN
+    static char lfn[_MAX_LFN + 1];
+    fno.lfname = lfn;
+    fno.lfsize = sizeof lfn;
+#endif
+
+
+    res = f_opendir(&dir, path);                       /* fBNgJ */
+    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͖ */
+#if _USE_LFN
+            fn = *fno.lfname ? fno.lfname : fno.fname;
+#else
+            fn = fno.fname;
+#endif
+            if (fno.fattrib & AM_DIR) {                    /* fBNg */
+                sprintf(&path[i], "/%s", fn);
+                res = scan_files(path);
+                if (res != FR_OK) break;
+                path[i] = 0;
+            } else {                                       /* t@C */
+                printf("%s/%s\n", path, fn);
+            }
+        }
+        f_closedir(&dir);
+    }
+
+    return res;
+}
+
+
+ + + + +

߂

+ + diff --git a/fatfs/doc/ja/rename.html b/fatfs/doc/ja/rename.html new file mode 100644 index 0000000..0eafa49 --- /dev/null +++ b/fatfs/doc/ja/rename.html @@ -0,0 +1,82 @@ + + + + + + + + +FatFs - f_rename + + + + +
+

f_rename

+

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

+
+FRESULT f_rename (
+  const TCHAR* old_name, /* [IN] ÂIuWFNg */
+  const TCHAR* new_name  /* [IN] VIuWFNg */
+);
+
+
+ +
+

+
+
old_name
+
ύXΏۂ̃t@C܂̓TuEfBNgpXk'\0'I[̕ւ̃|C^w肵܂B
+
new_name
+
VpXk'\0'I[̕ւ̃|C^w肵܂Bɑ݂IuWFNgƓO͎g܂B܂AhCuԍ͎w肵ĂAold_nameŌ߂ꂽ_hCũIuWFNgƂĈ܂B
+
+
+ + + + + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

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 new file mode 100644 index 0000000..3e6f712 --- /dev/null +++ b/fatfs/doc/ja/sdir.html @@ -0,0 +1,40 @@ + + + + + + + + +FatFs - DIR + + + + +
+

DIR

+

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

+
+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]} */
+#if _FS_LOCK
+    UINT    lockid;    /* bNID */
+#endif
+#if _USE_LFN
+    WCHAR*  lfn;       /* LFNobt@ւ̃|C^ (in/out) */
+    WORD    lfn_idx;   /* LFNGg̐擪CfbNX (0xFFFF:) */
+#endif
+} DIR;
+
+
+ +

߂

+ + diff --git a/fatfs/doc/ja/setlabel.html b/fatfs/doc/ja/setlabel.html new file mode 100644 index 0000000..af4a243 --- /dev/null +++ b/fatfs/doc/ja/setlabel.html @@ -0,0 +1,89 @@ + + + + + + + + +FatFs - f_setlabel + + + + +
+

f_setlabel

+

{[Ƀ{[Exݒ肵܂B

+
+FRESULT f_setlabel (
+  const TCHAR* label  /* [IN] ݒ肷{[Exւ̃|C^ */
+);
+
+
+ +
+

+
+
label
+
ݒ肷{[Exk'\0'I[̕ւ̃|C^w肵܂B
+
+
+ + + + + +
+

+

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

+
    +
  • [JR[hZ11oCgȉBLFNg͓Kp܂B
  • +
  • sIh܂ނƂ͂łȂB
  • +
  • Cӂ̈ʒuɃXy[XuƂłBAŌƂȂXy[X͏B
  • +
+
+ +
+

Ή

+

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

+
+ + +
+

gp

+
+    /* ftHgEhCuɃ{[Exݒ */
+    f_setlabel("DATA DISK");
+
+    /* hCu2Ƀ{[Exݒ */
+    f_setlabel("2:DISK 3 OF 4");
+
+    /* hCu2̃{[Ex폜 */
+    f_setlabel("2:");
+
+
+ + +
+

Q

+f_getlabel +
+ + +

߂

+ + diff --git a/fatfs/doc/ja/sfatfs.html b/fatfs/doc/ja/sfatfs.html new file mode 100644 index 0000000..ed5ac87 --- /dev/null +++ b/fatfs/doc/ja/sfatfs.html @@ -0,0 +1,55 @@ + + + + + + + + +FatFs - FATFS + + + + +
+

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

+ +
+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) */
+#if _MAX_SS != _MIN_SS
+    WORD    ssize;        /* ZN^ETCY (512, 1024, 2048 or 4096) */
+#endif
+#if _FS_REENTRANT
+    _SYNC_t sobj;         /* IuWFNgID */
+#endif
+#if !_FS_READONLY
+    DWORD   last_clust;   /* FSINFO: ŌɊ蓖ĂꂽNX^ԍ */
+    DWORD   free_clust;   /* FSINFO: 󂫃NX^ */
+#endif
+#if _FS_RPATH
+    DWORD   cdir;         /* JgEfBNg̃NX^ (0:[g) */
+#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 */
+} FATFS;
+
+
+ +

߂

+ + diff --git a/fatfs/doc/ja/sfile.html b/fatfs/doc/ja/sfile.html new file mode 100644 index 0000000..36a73b3 --- /dev/null +++ b/fatfs/doc/ja/sfile.html @@ -0,0 +1,48 @@ + + + + + + + + +FatFs - FIL + + + + +
+

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

+ +
+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^ */
+#if !_FS_READONLY
+    DWORD   dir_sect;     /* ̃t@C̃fBNgEGĝZN^ */
+    BYTE*   dir_ptr;      /* ̃t@C̃fBNgւ̃|C^ */
+#endif
+#if _USE_FASTSEEK
+    DWORD*  cltbl;        /* t@C̃NX^ENւ̃|C^ (I[vNULLZbg) */
+#endif
+#if _FS_LOCK
+    UINT    lockid;       /* t@CEbNID */
+#endif
+#if !_FS_TINY
+    BYTE    buf[_MAX_SS]; /* t@CEvCx[gEf[^]obt@ */
+#endif
+} FIL;
+
+
+ +

߂

+ + diff --git a/fatfs/doc/ja/sfileinfo.html b/fatfs/doc/ja/sfileinfo.html new file mode 100644 index 0000000..1a3db24 --- /dev/null +++ b/fatfs/doc/ja/sfileinfo.html @@ -0,0 +1,70 @@ + + + + + + + + +FatFs - FILINFO + + + + +
+

FILINFO

+

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

+
+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) */
+#if _USE_LFN
+    TCHAR* lfname;   /* t@C̃obt@ւ̃|C^ */
+    int lfsize;      /* t@C̃obt@̃TCY [] */
+#endif
+} FILINFO;
+
+
+ +

o

+
+
fsize
+
t@C̃oCgPʂ̃TCYi[܂BfBNg̏ꍇ͏0łB
+
fdate
+
t@C̕ύXꂽtA܂̓fBNg̍쐬ꂽti[܂B
+
+
bit15:9
+
1980NN_ƂN 0..127 œ܂B
+
bit8:5
+
1..12 ̒lœ܂B
+
bit4:0
+
1..31 ̒lœ܂B
+
+
+
ftime
+
t@C̕ύXꂽA܂̓fBNg̍쐬ꂽi[܂B
+
+
bit15:11
+
0..23 ̒lœ܂B
+
bit10:5
+
0..59 ̒lœ܂B
+
bit4:0
+
b/2 0..29 ̒lœ܂B
+
+
+
fattrib
+
tOi[܂BtOAM_DIR, AM_RDO, AM_HID, AM_SYS, AM_ARC̑gݍ킹ƂȂ܂B
+
fname[]
+
8.3`̖O'\0'ŏI镶ƂĊi[܂BLFN\̂Ƃ́Aɑ啶ŕԂ܂BLFN\̂Ƃ͒ZOԂ܂AASCIIpɂȂꍇ܂B
+
lfname
+
Ԃ钷t@Ci[obt@ւ̃|C^B̍\̂gpOɃAvP[Vɂ菉Ȃ΂Ȃ܂B̃oNULLݒ肳LFN͕Ԃ܂BLFN\̂Ƃ͂̃o݂͑܂B
+
lfsize
+
t@Ci[obt@̃TCY(vf)B̍\̂gpOɃAvP[Vɂ菉Ȃ΂Ȃ܂BLFN\̂Ƃ͂̃o݂͑܂B
+
+ +

߂

+ + diff --git a/fatfs/doc/ja/size.html b/fatfs/doc/ja/size.html new file mode 100644 index 0000000..caff05d --- /dev/null +++ b/fatfs/doc/ja/size.html @@ -0,0 +1,62 @@ + + + + + + + + +FatFs - f_size + + + + +
+

f_size

+

t@C̃TCY擾܂B

+
+DWORD f_size (
+  FIL* fp   /* [IN] t@CEIuWFNg */
+);
+
+
+ + +
+

+
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

oCgPʂ̃t@CETCYԂ܂B

+
+ + +
+

+

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

+
+#define f_size(fp) ((fp)->fsize)
+
+
+ + +
+

Ή

+

Ɏgp”\B

+
+ + +
+

Q

+

f_open, f_lseek, FIL

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/stat.html b/fatfs/doc/ja/stat.html new file mode 100644 index 0000000..5337f34 --- /dev/null +++ b/fatfs/doc/ja/stat.html @@ -0,0 +1,74 @@ + + + + + + + + +FatFs - f_stat + + + + +
+

f_stat

+

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

+
+FRESULT f_stat (
+  const TCHAR* path,  /* [IN] IuWFNgւ̃|C^ */
+  FILINFO* fno        /* [OUT] t@C\̂ւ̃|C^ */
+);
+
+
+ +
+

+
+
path
+
`FbNIuWFNgk'\0'I[̕w|C^w肵܂B
+
fno
+
IuWFNg݂Ƃɂ̏i[t@C\̂ւ̃|C^w肵܂B̏񂪕svȂƂ̓kE|C^w肵ĂB
+
+
+ + + + + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + + + +

߂

+ + diff --git a/fatfs/doc/ja/sync.html b/fatfs/doc/ja/sync.html new file mode 100644 index 0000000..74f7910 --- /dev/null +++ b/fatfs/doc/ja/sync.html @@ -0,0 +1,66 @@ + + + + + + + + +FatFs - f_sync + + + + +
+

f_sync

+

ݒ̃t@C̃LbVꂽtbV܂B

+
+FRESULT f_sync (
+  FIL* fp     /* [IN] t@CEIuWFNg\̂ւ̃|C^ */
+);
+
+
+ +
+

+
+
fp
+
synct@C̃t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
+
+ + + + + +
+

+

̊֐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

+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+

f_close

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/tell.html b/fatfs/doc/ja/tell.html new file mode 100644 index 0000000..1dee982 --- /dev/null +++ b/fatfs/doc/ja/tell.html @@ -0,0 +1,62 @@ + + + + + + + + +FatFs - f_tell + + + + +
+

f_tell

+

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

+
+DWORD f_tell (
+  FIL* fp   /* [IN] t@CEIuWFNg */
+);
+
+
+ + +
+

+
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
+
+ + +
+

߂l

+

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

+
+ + +
+

+

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

+
+#define f_tell(fp) ((fp)->fptr)
+
+
+ + +
+

Ή

+

Ɏgp”\B

+
+ + +
+

Q

+

f_open, f_lseek, FIL

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/truncate.html b/fatfs/doc/ja/truncate.html new file mode 100644 index 0000000..29bf480 --- /dev/null +++ b/fatfs/doc/ja/truncate.html @@ -0,0 +1,67 @@ + + + + + + + + +FatFs - f_truncate + + + + +
+

f_truncate

+

t@C؂l߂܂B

+
+FRESULT f_truncate (
+  FIL* fp     /* [IN] t@CEIuWFNgւ̃|C^ */
+);
+
+
+ +
+

+
+
fp
+
؂lߑΏۃt@C̃t@CEIuWFNgւ̃|C^
+
+
+ + + + + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+

f_open, f_lseek, FIL

+
+ + +

Return

+ + diff --git a/fatfs/doc/ja/unlink.html b/fatfs/doc/ja/unlink.html new file mode 100644 index 0000000..7cfb703 --- /dev/null +++ b/fatfs/doc/ja/unlink.html @@ -0,0 +1,74 @@ + + + + + + + + +FatFs - f_unlink + + + + +
+

f_unlink

+

t@C܂̓TuEfBNg폜܂B

+
+FRESULT f_unlink (
+  const TCHAR* path  /* [IN] IuWFNgւ̃|C^ */
+);
+
+
+ +
+

+
+
path
+
폜ΏۂpXk'\0'I[̕ւ̃|C^w肵܂B
+
+
+ + + + + +
+

+

폜Ώۂ̃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
  • +
+

+
+ +
+

Ή

+

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

+
+ + +

߂

+ + diff --git a/fatfs/doc/ja/utime.html b/fatfs/doc/ja/utime.html new file mode 100644 index 0000000..382defb --- /dev/null +++ b/fatfs/doc/ja/utime.html @@ -0,0 +1,99 @@ + + + + + + + + +FatFs - f_utime + + + + +
+

f_utime

+

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

+
+FRESULT f_utime (
+  const TCHAR* path,  /* [IN] IuWFNgւ̃|C^ */
+  const FILINFO* fno  /* [IN] ݒ肷t */
+);
+
+
+ +
+

+
+
path
+
ύXΏۂ̃IuWFNgpXk'\0'I[̕w肵܂B
+
fno
+
ݒ肷tƎԂfdateftimeoɐݒ肳ꂽFILINFO\̂ւ̃|C^B̃o͂̊֐ł͈Ӗ܂B
+
+
+ + + + + +
+

+

IuWFNg̃^CX^vύX܂B

+
+ + +
+

gp

+
+FRESULT set_timestamp (
+    char *obj,     /* t@Cւ̃|C^ */
+    int year,
+    int month,
+    int mday,
+    int hour,
+    int min,
+    int sec
+)
+{
+    FILINFO fno;
+
+    fno.fdate = (WORD)(((year - 1980) * 512U) | month * 32U | mday);
+    fno.ftime = (WORD)(hour * 2048U | min * 32U | sec / 2U);
+
+    return f_utime(obj, &fno);
+}
+
+
+ + +
+

Ή

+

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

+
+ + +
+

Q

+

f_stat, FILINFO

+
+ +

߂

+ + diff --git a/fatfs/doc/ja/write.html b/fatfs/doc/ja/write.html new file mode 100644 index 0000000..35da3fa --- /dev/null +++ b/fatfs/doc/ja/write.html @@ -0,0 +1,75 @@ + + + + + + + + +FatFs - f_write + + + + +
+

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 */
+);
+
+
+ +
+

+
+
fp
+
t@CEIuWFNg\̂ւ̃|C^w肵܂B
+
buff
+
ރf[^i[obt@w|C^w肵܂B
+
btw
+
ރoCg(0`UINT^̍ől)w肵܂B
+
bw
+
܂ꂽoCgi[ϐw|C^w肵܂B߂l͊֐̐ۂɂ炸ɗLłB
+
+
+ + + + + +
+

+

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

+
+ + +
+

Ή

+

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

+
+ + + + +

߂

+ + -- cgit v1.2.3