

#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 初版