2006-07-19

iconv(というかsize_tを返す関数)の罠

if (iconv (cd,&inbuf,&inbytesleft,&outbuf, &outbytesleft) < 0) {
// エラー処理...
}

いい歳して上のコードではまった私。

size_tはunsignedなので上のif条件は成立しないのだ。
プラットフォームによってはssize_tという signedな型も定義されていて主にソケット周りで使われているが、ナンにせよ返値は一度てきとーな変数に代入してから評価せよってことですな(デバッグもしやすいし)