At Fri, 29 Sep 2000 13:50:23 +0900,
Nobuyoshi.Nakada <nobu.nakada / nifty.ne.jp> wrote:
> > まず,iconvのエラーコードとしてE2BIGが返ってきます.このときに
> > outlenに(-2)が入っています.このため,output length = 258
> > と返ってきてるようでした.そこで,
> 
>   http://www.opengroup.org/onlinepubs/007908799/xsh/iconv.html を見ると
> オーバーフローのときも 4 つの引数の指す変数はエラーになる直前の値を保証
> する、という風に読めるんですが、どうでしょう。

それで,solaris7のmanに添付されているサンプルコードを実装してみ
て,iconvが呼ばれるたびにoutlenの値をprintf("%d\n",...)で確認し
てみました.すると,やっぱり負の値をとってました.

# サンプルコードは一応ちゃんと動いて変換してくれています.

気になったのは,solaris7のmanではバッファサイズとして
/usr/include/iso/stdio_iso.hで定義済みのBUFSIZというマクロを使って
いる点です.そこで,outputの方のバッファサイズを256からBUFSIZに変更
してみるとiconv-0.4.3-pre3はうまく動きました.

# ひょっとしてBUFSIZで決めうちされているのでしょうか....
-- 
Takaaki Tateishi <ttate / jaist.ac.jp>