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

HPEのサーバーやストレージで使われているSSDで不具合、SHRT_MAX+1時間の稼働でデータ喪失」記事へのコメント

  • by Anonymous Coward on 2019年12月04日 16時59分 (#3726099)

    Cだとshort intの最大値はSHORT_MAXで、具体的な値は処理系依存だったような…

    • by Anonymous Coward

      SSDコントローラに組み込まれてるCPUコアって、だいたいARMだとおもう
      これなら最低32bitはあるはず

      なのでSHORT_MAXは20億はあるはず

      わざわざ明示的にint16を使ったのか、
      それともCPUコア以外の部分で16bit実装してたのか

      • by Anonymous Coward

        SSDコントローラに組み込まれてるCPUコアって、だいたいARMだとおもう
        これなら最低32bitはあるはず

        なのでSHORT_MAXは20億はあるはず

        どういう理屈??

        • by Anonymous Coward

          INT_MAXと取り違えているのに一票。
          Cの規格上だと、SHRT_MAXもINT_MAXも「32767(2^15-1)以上」ってことになっているけど、intが64bitになったってSHRT_MAXが32767以外になっている処理系に出会ったことはないなぁ。

          # WORDとかDWORDとかtypedefしているのをメンテすることあるけど、これはほんと止めて欲しい。サイズも符号の有無も判らなくて、いちいちtypedefしているところを探す羽目になる。最悪なのは、同一プロジェクト内で何にtypedefしているかバラバラなこと。

          • by Anonymous Coward on 2019年12月04日 20時38分 (#3726221)

            ひょっとしてこれがあるかな?
            SATAのコマンドフレームとしてWORD=32bitで表現しているので設計者は32bitあると思い込んでいたが、実際にWORDをtypedefしていたファイルは8bitマイコン時代から使い回していたシロモノでWORD=16bitだったとか。

            親コメント
            • by Anonymous Coward

              モトローラ系MPUが、word = 16bit, dword = 32bit。

      • by Anonymous Coward

        SHORT_MAXって何ですか?
        というのはおいておき、GCCもVCもSHRT_MAXが32767で、INT_MAXが2147483647の実装だと思うのだが。

    • by Anonymous Coward

      今の時代、処理系依存するような型をクリティカルな場所で使用するなよぉ。
      stdint.h の存在を知らなかったとはいはせない。

      それともやはり、アセンブラで書いているとか。

      • by Anonymous Coward

        stdint.hも処理系依存なんだが・・

        • by Anonymous Coward

          処理系依存と言っても int32_t が使えて実は16bitなんて事はありえないでしょ。
          定義されてない場合はあるにしても。

    • by Anonymous Coward

      Cだとshortは2バイトなのでSHORT_MAXは0x7FFF固定。
      intのサイズは処理系依存なのでINT_MAXも処理系依存。

      • by Anonymous Coward

        intのサイズは処理系依存だとわかっているのにshortは2バイト固定とか言う馬鹿

開いた括弧は必ず閉じる -- あるプログラマー

処理中...