[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:100094] Re: C の [ void main ( void ) ]について


At Sat, 12 Jul 2003 02:49:18 +0900,
Tomohiko Yoshida wrote:
> > K&R は、規格準拠という点でどうかは知りませんが、
> > 多くの記述が今日では「むしろ避けるべき悪い例」に
> > なってしまっているので、私はお勧めしません。
> > K&R はお守り代わりに買って積んでおくのがよろしいかと。
> 
> 「むしろ避けるべき悪い例」とは、たとえばどんな内容ですか?

では例を一つ。

バッファオーバーフローを引き起こす例示がいくつも出て来ます。

例えば、K&R の中には strcpy()、strcat(), fgets() の実装例が
出てきます。これらは標準 C に含まれる関数ではありますが、
バッファオーバフローをおこしやすいために、今日ではむしろ
避けることを推奨されています。

2002 年の統計によれば、バッファオーバーフローは脆弱性の原因の
約 2 割を占めています。バッファオーバーフローを引き起こす
プログラムは、初学者向けの本では読者の目に触れないように排除され、
また上級者向けの本では悪い例として示されるのが良いと思います。

そういう観点でみると、K&R は望ましくないのです。

K&R が書かれた当時にしてみれば、バッファオーバーフローの深刻さが
今程認識されていなかったのでしょうから、しかたない面はあります。
しかし、事実として、今日の需要には合わなくなってしまっているのです。

--
Naoto Shimazaki

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: