猫は意外と胴が長いのですがこの記事とはあまり関係ありません。8で実行すると動作に違いがあります。hogeこたえはそれぞれ以下のようになります。Ctrl-Cなどで停止させるまで止まらない。とエラーが出力されてcatが停止、ファイルhogeは変化しない。実行したときに何が起こっているのかを詳しくみていきましょう。観察するため、シェルのPIDを確認し、別のシェルでstraceを動かします。オプションをつけてフィルタします。straceを仕込んだ方には以下の出力がでてきました。1回は標準入力(stdin)のために、読み込み専用(O_RDONLY)で、もう1つは標準出力(stdout)として、書き込み専用(O_WRONLY)かつ追記(O_APPEND)で開いています。シェルがファイルを用意して環境がととのったのでexecveでcatが実行します。(cat編)いよいよcatの実行がはじまります。今回は明確なエラーメッセージが出力されているのでソースの中でメッセージを探します。703stat_bufは入力ファイルに対してstatを行った結果です。7の時の動作として説明したように無限にファイルが伸びつづけてしまう(その結果リソースが枯渇する)のでこれをエラーとして早めに停止させるというコードが書かれています。事故防止の意図はわかりました。該当する箇所をみてみましょう。}おおむね同じような意図のコードがあるのですが、少しエラー検出の条件が甘く、入力ファイルが標準入力であれば見逃されてしまうようです。7で以下のコマンドで正しくエラー検出がされることを確認します。file無限に長くなる猫は好まれないという話でした。HatでOpenShiftのサポートをしているid:nekopです。Hatのさいとうです。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。