#99 Article 793 Posted at 1993/11/03 00:49:18 by るなお (MAP3764) [C]
Subject: Re: printfは奥がふかい /791
>Cのprintfってよく使いますが, >これってとてつもなくスゴイ関数ですよね. はい。スゴイです。何しろ可変個の引数とりますし。 >これって内部で出力用バッファをmallocしてるんでしょうか? >それとも1文字ごとにputcharしてるんでしょうか? どちらでもありませんね。まず、メモリの確保は固定サイズで auto で取られている作業用(数値などを文字列に変換するため)の バッファと、ストリームをオープンした時に割り当てた I/O 用の バッファを使います。そして、putc マクロ(関数ではない)を使っ て I/O バッファに書き込んでいます。 >こんどデバッガでprintfをのぞいてみようかな? 私は、会社で 4.3BSD と SVR2.0, SVR4.0, SVR4.2 の libc.a の ソースを見る事が出来ますが (ソースライセンス受けてるから)。 比べてみた事は無いですが、GNU の libc.a でもそう変わらないで しょうから、 GNU のソースを一度みてみるといいかもしれません。 多分逆アセンブラで解析するのは死ぬと思います (^^; 。ソース見 ても結構複雑ですから。 ---------- るなお