2009年7月2日木曜日

lessでは/procのファイルを読めなかった

寄稿原稿を処理していて「(/proc以下の)ファイル内容を参照するときにはlessコマンドの利用は避け,catコマンドを利用して下さい」という文章に目が留まった。あったなー,こういう制限。もう10年以上昔の話になると思うけど,当時は/proc以下のファイルはlessコマンドでは読めなかったんだよな。catやmoreならOKだった。そういやいつの間にか普通に読めるようになってるね。


いつから読めるようになったんだろう,と思って調べてみるとGNU lessのv305に「v305 2/2/96 Workaround Linux /proc kernel bug」という変更がある。変更は,バッファのフラッシュ部分に次のようなコードを追加したこと。


if (ch_fsize == 0)
{
ch_fsize = NULL_POSITION;
ch_flags &= ~CH_CANSEEK;
}

/proc以下のファイルはサイズが0と報告されるんで,パイプと同じように処理しようということだな。確かにこの変更を加えると,通常では/proc以下のファイルが読めないGNU less v290でも読めるようになった。


どうでもいい話ではあるけど,分かるとすっきりする。

0 件のコメント: