ヒューマンエラー

ヒューマンエラー

今回のブログポストでは、ここしばらく私を悩ませてきた問題を紹介したい。 bashなどでコマンドを実行すると、システムはそのコマンドを実行し、その結果の出力はシステムの標準出力にコピーされるはずである。ほとんどの場合、コマンドが実行されると、それは「良いこと」である。 しかし、このような場合、システムはコマンドの標準出力にも出力を書き込むことになる。これには、コマンドと同じターミナル・セッションで実行されている他のコマンドからの出力が含まれることがあり、コマンドからのエラー出力も含まれることがある。 この場合の問題は、コマンドが複数回実行されたりすると、コマンドからの出力が上書きされてしまう可能性があることだ。 最初は、これはbashだけの問題だと思っていたのですが、実はほとんどのシェルスクリプト言語で起こる問題だということがわかりました。 bash、ksh、tcsh、zshなどのシェルスクリプト言語には、コピーしたバイト数を表示するwcという関数が組み込まれている。これは、関数のprintf関数を呼び出して、コピーされたバイト数の1を引数に渡すことで実行される。 しかし、これの問題は、wc関数が呼び出されるたびに、システムはコマンドの前回実行時の出力全体を新しい出力にコピーしてしまうことである

Photo by Josh Rokman – AI Images

この作品の出来はいかがでしたでしょうか。ご判定を投票いただくと幸いです。
 
- 投票結果 -
よい
わるい
お気軽にコメント残して頂ければ、うれしいです。