Tetsuo Handa
from-****@i-lov*****
2009年 7月 8日 (水) 13:14:56 JST
熊猫です。 Hiroshi Shinji さんは書きました: > make_alias.c 内で使用している scandir(3) は、システムコール getdents(2) を > 呼び出していますが、d_type が利用できないファイルシステムもあります。 > そのため、make_alias が全く動作しないシステムもあります。 あらら。ライブラリ側の仕様ではなくてカーネル側(ファイルシステム側)の仕様で そうなってしまうんですか。 > ということで、スクリプト版の make_alias() も(現在のように > コメントアウトした状態で良いので)使えるようにしておいて > もらえるとありがたいです。 > # alias 構文がある間は。 getdents() で DT_UNKNOWN となってしまったとしても、 lstat() で再チェックすれば "struct stat"->st_mode から判断することはできますよね?(そうでなかったら ls -l でファイル種別を表示できないでしょうし。) make_exception.c では DT_UNKNOWN の場合は lstat() で再チェックしています。 make_alias.c でも再チェックするようにしてやれば initrd を使って起動している 機器でも動作できるのではないでしょうか?