# FS_WriteFileAsync

## 構文

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

## 引数

p_file | FSFile構造体のアドレス
src | 書き込むデータが格納されたバッファのアドレス
len | 書き込むデータのバイト長

## 返り値

データが正しく書き込めるなら成功時のバイト数を, そうでないなら -1 を返します。

## 説明

ファイルポインタの現在位置から指定サイズのデータを非同期モードで書き込みます。
終端を越えるようにサイズ指定した場合、終端まで書き込んでそのサイズを返します。
この関数は`FS_WriteFile()`とは異なり、制御をすぐに戻し非同期で実行されます。
処理の完了を確認するには`FS_IsBusy()`を使用します。
また、`FS_WaitAsync()`によって完了まで待つことができます。

## 注意

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

## 参照

`FSFile
FS_WriteFile FS_IsBusy FS_WaitAsync FS_GetFileLength FS_GetFilePosition FS_SeekFile FS_SeekFileToBegin FS_SeekFileToEnd`

## 履歴

2008/10/02 参照リストを一部更新
2004/11/02 引数説明を訂正
2004/09/24 呼び出し時および完了の条件についての注意を記述追加
2004/07/13 初版