size_t SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| SDL_iconv_t | cd | SDL_iconv_open()で生成した文字コード変換状態 |
| const char ** | inbuf | 入力シーケンスの先頭文字を示す変数のアドレス |
| size_t * | inbytesleft | 入力バッファのバイト数 |
| char ** | outbuf | 出力バッファを示す変数のアドレス |
| size_t * | outbytesleft | 出力バッファのバイト数 |
(size_t) 成功のとき変換した数, 失敗のとき負の数のエラーコードを戻す.
| SDL_ICONV_ERROR | (size_t)-1 | 一般的なエラー. SDL_GetError()を確認すること |
| SDL_ICONV_E2BIG | (size_t)-2 | 出力バッファが小さすぎる |
| SDL_ICONV_EILSEQ | (size_t)-3 | 無効な入力シーケンスに遭遇した |
| SDL_ICONV_EINVAL | (size_t)-4 | 不完全な入力シーケンスに遭遇した |
成功のとき変換した数を戻す. 失敗の場合, 出力バッファが小さすぎるときSDL_ICONV_E2BIG, 無効な入力シーケンスがあったときSDL_ICONV_EILSEQ, 不完全な入力シーケンスがあったときSDL_ICONV_EINVALを戻す.
この関数から戻ると:
inbufには次回のマルチバイトシーケンスの開始位置が設定される.
異常のとき, 入力シーケンスの問題のあった位置になる.
成功のとき, 入力シーケンスの末尾になる
inbytesleftには未変換のバイト数が設定される. 成功のとき0になる
outbufには次回の出力の書き込み位置が設定される
outbytesleftには出力バッファの残りバイト数が設定される
同じSDL_iconv_tを複数のスレッドから同時に使用することはできない.