const char* SDL_GetError(void)
発生したエラーの情報のメッセージを戻す. または, SDL_ClearError()を呼んでからエラーがなければ, 空の文字列を戻す. SDL_ClearError()を呼んだ場合を除けば, メッセージはSDL関数がエラーを報告した場合のみ変わる. SDL_GetError()を呼ぶかどうかは, SDL関数の戻り値を確認して決める必要がある.
if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
// 回復できないエラー. ここで終了処理を行う
printf("SDL_Init 失敗: %s¥n", SDL_GetError());
}
メモ: このサンプルではSDL_Init()を使っているが, SDL_GetError()はエラーの調査を助けるためにあらゆるSDLの操作の失敗でエラーメッセージを提供している. SDL関数のそれぞれの項目を参照すること.
SDL_GetError()を呼ぶ前に複数のエラーが発生する可能性がある. この場合, 最後のエラーメッセージのみ戻す.
このメッセージはSDL関数がエラーを発した場合のみ使用できる. SDL_GetError()を呼べるか否かは, SDL関数の戻り値をチェックする必要がある. エラーが発生したかを確認するためにSDL_GetError()の結果を利用すべきではない! SDLは正常を報告してもエラー文字列を設定する場合がある.
SDLはAPI呼び出しに成功してもエラー文字列を消去しない. エラー文字列を使う前に, 戻り値でエラーを確認する必要がある.
エラー文字列はスレッドごとに設定される. よって, 別のスレッドで発生したエラーは現在のスレッドでの操作には影響しない.
文字列は静的に確保されているので, アプリケーションは解放してはならない.