Cente FileSystem
・全角の大文字・小文字の表記が可能なコードの扱いに誤りがある不具合を修正(Cente障害情報:101-0092)
全角ファイル・ディレクトリ名に対し大文字/小文字の関係にあった場合、異なったファイル・ディレクトリであると判断してしまう不具合を修正。本修正はVer6.20で修正した「Cente障害情報:101-0092」について追加修正を行ったものです。以下の処理部を修正しています。
1.同一ファイルオープンの検出
2.rename(), rename_uni()実行時の同一ファイル検出
3.move(), move_uni()実行時の同一ファイル検出
・高速fseek時に異なる位置にシークしてしまう不具合を修正(Cente障害情報:101-0093)
高速fsek使用時において、クラスタ内移動セクタ数の算出方法に誤りがあり、以下の問題が発生する不具合を修正。
1.正しい位置にデータが書き込めない。
2.データが正しく読み出せない。
3.サイズ情報とFAT チェーン情報に不整合が発生してしまう。
・ハッシュによる検索時にCT_ENTRY_ERR(-71)エラーが発生する不具合を修正(Cente障害情報:101-0094)
ハッシュ機能有効時に、フルパス指定で且つディレクトリエントリ情報の変更を伴うAPIを実行した場合、CT_ENTRY_ERR(-71)エラーが発生する可能性がある不具合を修正。
・nullfat2による空き検索の不具合を修正(Cente障害情報:101-0095)
ファイル削除処理が一度行われた場合に(fopen w、w+モードによるファイルオープンを含む)、その後の書き込み処理において、容量に空きがあるのにも関わらずディスクフルエラー(CT_DISK_FULL:-11)が発生する可能性がある不具合を修正。
・ディレクトリ一括削除API追加
S-JIS用ディレクトリ一括削除API【rmdir_all()】、UNICODE用ディレクトリ一括削除API【rmdir_all_uni()】を追加しました。
・ディレクトリ内総数取得API追加
S-JIS用ディレクトリ内総数取得API【dinfo()】、UNICODE用ディレクトリ内総数取得API【dinfo_uni()】を追加しました。
・ワイルドカードを用いた検索APIを追加
S-JIS用ワイルドカードを用いた検索API【readdir_wc()】、UNICODE用ワイルドカードを用いた検索API【readdir_wc_uni()】を追加しました。
・文字列操作関数の追加/削除
「Cente障害情報:101-0092」の修正に伴い、以下の関数を追加/削除しました。
《追加》
1.fs_fnaicmp()
2.fs_fnanicmp()
3.fs_fnaicmp_uni()
4.fs_fnanicmp_uni()
《削除》
1.fs_mbsncmp ()
2.fs_unicodencmp()
・ini_journal()の戻り値修正
エラーコード「CT_ABN_FILE:-1」が戻される一部のケースにおいて、より解りやすいエラーコードへの置き換えを行いました。
・静的解析ツールの指摘事項修正
ルート上のファイル/ディレクトリ検索、作成を行う内部関数、fs_set_dir_entry_root()、fs_find_longer_entry_root()において、処理上の問題はないが、静的解析ツールを使用した場合に、型の違いによりワーニングが検出される問題を修正しました。
・ショートファイル名のチルダ後に付加する番号の仕様変更
ロングファイル名でファイル/ディレクトリを作成した際、重複回避のためにショートファイル名に付加させる「チルダ(~) + 番号」はエントリ情報に格納されている最大値に加算させる形で付加させています。上限値を超えた場合は即座にCT_OVER_SFILENAME(-66)エラーとしていましたが、エントリ情報の最小値を確認することで、削除済みの番号(最小値より若い番号)が再利用できるように改善を行いました。