FS_SetSeekCache

構文


#include <nitro/fs.h>

BOOL FS_SetSeekCache(FSFile *file, void* buf, u32 bufsize);

引数

file すでに開かれているファイル
引数の条件について、後述の【注意】もご参照ください。
buf シーク用キャッシュとして使用させるバッファ
NULLを指定した場合は以前に設定したキャッシュバッファの使用を解除します。
引数の条件について、後述の【注意】もご参照ください。
bufsize バッファのサイズ
シーク用キャッシュとして充分なサイズはFS_GetSeekCacheSize()で取得することができます。
サイズが小さい場合、ライブラリは与えられたサイズの範囲で可能な限りのキャッシュを構築します。

返り値

処理が成功すればTRUEを返します。
以下の場合には失敗してFALSEを返します。

説明

シーク用キャッシュバッファを設定します。
NANDアーカイブSDカードアーカイブなど 内部フォーマットにFATを採用しているアーカイブではファイル終端や逆方向へのシーク処理に大きな実行コストを要する場合があります。 読み込み専用ファイルのシーク操作を頻繁に使用することがわかっている場合、この関数を使用することによってシーク速度を向上することができます。

この関数で設定したバッファは、ファイルを閉じるか明示的にNULLを指定して使用を解除するまでライブラリ内部で管理されます。

この関数は、指定されたバッファの範囲内で先端と終端をキャッシュライン境界に整合させて切り詰めた領域だけを使用します。 FS_GetSeekCacheSize()で取得するバッファサイズには、 どのようなアドレスでも使用できる充分な余白が含まれています。

注意

参照

FS_SeekFile FS_GetSeekCacheSize

履歴

2009/02/05 バッファのキャッシュライン境界整合に関する追記
2008/07/01 ファイルが読み込み専用モードで開かれている必要がある旨を追記
2008/06/26 初版