# FS_ReadFileAsync

## 構文

  `#include <nitro/fs.h>`
  `s32 FS_ReadFileAsync( FSFile *p_file, void *dst, s32 len );`

## 引数

p_file | FSFile構造体のアドレス
dst | 格納先バッファのアドレス
len | 読み出すデータのバイト長

## 返り値

データが正しく読み出せるなら成功時のバイト数を, そうでないなら -1 を返します。

## 説明

ファイルポインタの現在位置から指定サイズのデータを非同期モードで読み出します。 終端を越えるようにサイズ指定した場合、終端まで読み出してそのサイズを返します。
この関数は`FS_ReadFile()`とは異なり、制御をすぐに戻し非同期で実行されます。
処理の完了を確認するには`FS_IsBusy()`を使用して定期的に返り値を判定するか、 あるいは`FS_WaitAsync()`によってスレッドを待機状態にする方法があります。
ROM アーカイブを使用してカードデータを読み出す際には、 `CARD_ReadRomAsync()`の説明も参照ください。

## 注意

この関数は、処理を非同期に実行できないアーカイブの場合は`FS_ReadFile()`と同様に同期処理となります。そのようなアーカイブの場合はこの関数を割り込みハンドラ(IRQモード)から呼び出すことはできません。また、割り込みを禁止したままの状態にあると処理が完了しない場合がある点に注意して下さい。

## 参照

`FSFile FS_ReadFile FS_WaitAsync FS_GetFileLength FS_GetFilePosition FS_SeekFile FS_SeekFileToBegin FS_SeekFileToEnd`

## 履歴

2008/10/02 参照リストを一部更新
2005/08/28 説明文に`CARD_ReadRomAsync()`へのリンクを追加
2004/09/24 呼び出し時および完了の条件についての注意を記述追加
2004/07/13 説明をアーカイブ全般へのものへ修正
2004/05/14 初版