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
Follow-Ups:
- [linux-users:100096] Re: C の [ void main ( void ) ]についてSatoru KAMEOKA
- [linux-users:100083] Re: C の [ void main ( void ) ]についてTakeshi Kusune / 楠根 雄志
- [linux-users:100084] Re: C の [ void main ( void ) ]についてNaoto Shimazaki
- [linux-users:100086] Re: C の [ void main ( void ) ]についてTomohiko Yoshida
- Prev by Subject: [linux-users:100092] Re: Red Hat Linux 9 + sendmail
- Next by Subject: [linux-users:100095] Re: RAID を利用したシステムの復旧について
- Previous by thread: [linux-users:100091] リファレンス (Re: C の [ void main ( void ) ]について)
- Next by thread: [linux-users:100096] Re: C の [ void main ( void ) ]について
- Indexes:[Main][Thread]