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

SDL_WriteAsyncIO

非同期書込を開始する

ヘッダ

SDL3/SDL_asyncio.h

構文

bool SDL_WriteAsyncIO(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_WriteAsyncIO - SDL Wiki