パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Hello, Worldに潜むバグ」記事へのコメント

  • by Anonymous Coward

    putsの実行結果戻り値をハンドリングせずにプログラムを常に正常終了するようなコードなんだから、putsが成功しようが失敗しようが正常終了するのが当たり前に思えるんですけど。

    • by Anonymous Coward

      「俺の思う最強のhelloworldの仕様を満たしてないから、この実装はバグってる!」って主張してるだけだよな。
      Bashはバグってないとか言ってるけど、Cの実装に寄せて
      function helloworld {
      echo "Hello World"
      return 0
      }
      hwlloworld > /dev/full
      ってやれば、終了ステータスは0になるだろうし。

      • by Anonymous Coward on 2022年03月24日 17時23分 (#4220861)

        Hello Worldの仕様書とかあるのかな。

        親コメント
        • by Anonymous Coward

          K&R第2版には「Cでは,hello, worldと印字するためのプログラムは,次のようになる。」として書いてある。
          ということは、書き込みが行われない場合はプログラムの目的は果たせてないのでエラーなのかな。

          • by Anonymous Coward

            K&Rでの記述は簡素な例示であって、完全なエラー処理や「どう書くべき」とかまではいちいち踏み込んでないからな。
            プログラマの目的は果たせてないかもしれないが、プログラムからしたら「0を返せと言われているから0にしてるやろ。おたくの目的なんて知らんがな。わては書かれたとおりに実行してまっせ」となるだろう。
            bashだってexit 0やreturn 0で抜けると終了ステータスは0だぞ。
            ~$ bash -c 'echo "Hello World";exit 0' > /dev/full; echo $?
            bash: 0 行: echo: 書き込みエラー: デバイスに空き領域がありません
            0
            ~$ function he

「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常

処理中...