##### Shinobiライブラリ - メモリーカード関数

# buLoadFile

ファイルのロード

### 書式

  Sint32 buLoadFile( drive, *fname, *buf, nblock )
  Sint32 drive
  const char *fname
  void *buf
  Uint32 nblock

### 引数

  drive | 拡張ソケットの番号
  *fname | ファイル名
  *buf | 読み込みアドレス
  nblock | 読み込むブロック数

### 戻値

  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

  引数 bufは読み込まれたバッファ(但し即時復帰なので関数終了後では不定) 通常のアプリケーションであればこの関数でファイル全体をロードします。 読み込むブロック数に0を指定するとファイル全体をロードします。

### 用例

      Sint32 ret;
      Sint32 blocks;
      extern char SaveData[];	/* ロードバッファ */
      blocks = buGetFileSize(BUD_DRIVE_A1, "SAVEDATA");  /* ファイルサイズを取得 */
      if (blocks &lt;= 0) return NG;
      ret = buLoadFile(BUD_DRIVE_A1, "SAVEDATA", SaveData, blocks);
      if (ret == BUD_ERR_OK) {
      /* ロードリクエストに成功した */
      } else {
      /* ロードリクエストに失敗した(BUSY) */
      }

### 備考

  buStat()関数によるこの関数の完了ステータスは

  BUD_ERR_OK | 正常終了
  BUD_ERR_NO_DISK | メモリーカードがない
  BUD_ERR_UNFORMAT | フォーマットされていない
  BUD_ERR_FILE_NOT_FOUND | ファイルがない
  BUD_ERR_CANNOT_OPEN | ファイルが開けない
  BUD_ERR_FILE_BROKEN | ファイルが壊れている

  ロードには約(ロードブロック数×1Int)かかります。(他のドライブの状態等によっては、多少時間は変動します。) また、bufには必ず、4バイト境界でアドレスを与えるようにしてください。

buLoadFile

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998