締め切り間近の執筆中にコマンドのバグらしき動作を発見するも、混乱するのみ。
先月はパーティションに設定可能なラベルを表示するコマンドの確認中に、発見。
とあるmke2fsコマンドは作成時のみラベル表示が可能だが、その後、確認だけ(-nオプション)ではラベル欄が空になる事を発見。ま、本来の使用法ではないので、致し方ないのだが。
特定の条件下のみで表示されるわけだが、表示されることに変わりなし。
今月は、極めて一般的なコマンドでreniceだ。実行中のコマンドの優先度を変更するこのコマンドは、引数として、ナイス値を指定する。範囲はPRIO_MINからPRIO_MAXまで。
問題はこの値が-20から20までになっているのだ。
20?19までのナイス値にはない値だ。
ところが、コマンド操作的にはこれが、実行出来てしまうのだ。
値は19までしか降りないが、エラーは起こらないのだ。これをどう説明しよう。
設定は-20から19までできる。指定は-20から20までできる。か?
いっそ、設定される値のみで止めておこう。
ほじくり返すと、結構こういうバグと言うほどでもない矛盾が見つかってしまうのだ。
覚書
psコマンドで、ナイス値の出力を見るには
ps -eo "%c %n" などと打つ。
ナイス値は%nで表示されるのだが、これだけだと、ナイス値のみが縦にずらっと並ぶことになる。(いや、ナイス値だけ表示されても・・・)
PIDも一緒の場合は""内に%pを追加すればよい。
(%cはコマンド名)
って、全部マニュアルに書いてあるのだが・・・
因みにtopの出力はパイプでgrepに渡しても、下部表示を対象にできない。パイプやリダイレクト処理は基本的にテキストデータが対象になっているからだ。topの出力はほとんどバイナリだ。
最近のコメント