心の叫び
余談だが、玄箱に付属の CD-ROM には入っている init/main.c に
// 心の叫び
//
// if(-1 == execve("/sbin/init...))なんて表現は気持ち悪い!
// 定数を比較文の左に書くのは変だ!
こんなコメントがある。
私も定数を左に書くのは気持ち悪くて仕方がないのだが、
左に定数を書く人に聞いてみると、
if ( errno = EINTR )・・・ == と書くつもりが = と書いてしまった
は
if ( (errno = EINTR) != 0 ) と解釈されコンパイルエラーにならない。
ところが、
if ( EINTR = errno )・・・ == と書くつもりが = と書いてしまった
は定数には代入できないので、コンパイルエラーになる。
「比較と代入を間違えたことがわかるように、定数は左に書くべきだ」
との事。カルチャーショックだった。
上記カーネルのコード(?)が同様の理由かどうかはわからないが。
ちなみに上記「心の叫び」は、ソース CD では消されてしまっている。
←
LinkStation/玄箱 をハックしよう
→ /dev/fl3
Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp
山下康成@京都府向日市