Sint32 buDefragDisk( drive, *work ) Sint32 drive void *work
drive | 拡張ソケットの番号 |
*work | ワークバッファ(512バイト) |
BUD_ERR_OK | 処理要求を受けつけた |
BUD_ERR_BUSY | 処理中のため要求を受けつけられなかった |
拡張ソケットの番号driveには次の値が指定できます。
BUD_DRIVE_A1 | ポートAの拡張ソケット1 |
BUD_DRIVE_A2 | ポートAの拡張ソケット2 |
BUD_DRIVE_B1 | ポートBの拡張ソケット1 |
BUD_DRIVE_B2 | ポートBの拡張ソケット2 |
BUD_DRIVE_C1 | ポートCの拡張ソケット1 |
BUD_DRIVE_C2 | ポートCの拡張ソケット2 |
BUD_DRIVE_D1 | ポートDの拡張ソケット1 |
BUD_DRIVE_D2 | ポートDの拡張ソケット2 |
ワークバッファworkには、ワークエリアとして 512バイトを与えてください。
実行ファイルのセーブには十分な空き容量があるが、 セーブに必要な連続した空き容量が確保できない場合にこの関数を使います。
Sint32 ret; Uint32 DefragWork[512 / sizeof(Uint32)]; ret = buDefragDisk(BUD_DRIVE_A1, DefragWork); if (ret != BUD_ERR_OK) return NG; while (buStat(BUD_DRIVE_A1) == BUD_STAT_BUSY) { } if (buGetLastError(BUD_DRIVE_A1) != BUD_ERR_OK) return NG; return OK;
この関数の実行中にメモリーカードが抜かれると、ほとんどの場合すべてのデータが消失してしまいます。 アプリケーションプログラムは、この関数の実行中はメモリーカードの抜き挿しを決して行わないよう、 何らかの方法でプレーヤーに促してください。