目次 - SDL 3.0 API(機能別) - 非同期I/O - SDL_ReadAsyncIO

SDL_ReadAsyncIO

非同期読込を開始する

ヘッダ

SDL3/SDL_asyncio.h

構文

bool SDL_ReadAsyncIO(SDL_AsyncIO *asyncio, void *ptr, Uint64 offset, Uint64 size, SDL_AsyncIOQueue *queue, void *userdata);

引数

SDL_AsyncIO *asyncio非同期I/O操作
void *ptr読込先へのポインタ
Uint64offsetデータ元の読込開始位置
Uint64sizeデータ元からの読込バイト数
SDL_AsyncIOQueue *queue新しいSDL_AsyncIOの追加先キュー
void *userdata処理結果に渡されるアプリケーション定義のポインタ

戻り値

(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

この関数はデータ元からsizeバイトを読み込み, ptrが指定するエリアに書き込む. この関数の読み込みは要求より少ないこともある.

この関数は読み込みの完了を待たず, 可能な限り早く戻る. 成功して戻ったとき, 処理は背後で行われている. 処理が始まった後は失敗も非同期である. この関数が失敗の値を戻すのは処理を開始できなかった場合のみである.

ptrは処理が完了するまで有効である必要があり, それまではシステムがいつでもアクセスする可能性がある. これをスタック上に確保してはならない. 呼び出した関数から戻った後も必要な可能性があるためである.

SDL_AsyncIOQueueは必ず渡す必要がある. タスクの処理が完了すると, 新たにここに追加される.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_ReadAsyncIO - SDL Wiki