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

2.5.63」記事へのコメント

  • Subject のMailを探してみたところ, これでした. なるほど.. 演算子が先に vma->vm_flags を落としてしまうわけか...
    • [PATCH] oprofile author needs to learn C [theaimsgroup.com]

      - if (!vma->vm_flags & VM_EXECUTABLE)
      + if (!(vma->vm_flags & VM_EXECUTABLE))

      ディレクトリ検査では, 以下のように書け. と見たりするのですが,

      if ((stat.st_mode & S_IFDIR) == S_IFDIR) {
      }

      以下のようにしたら, なぜいけないんですか? (マクロ S_ISDIR

    • by Anonymous Coward
      例:
      (15&3) == 3 と (15&3) はどちらも not equal 0、
      ( 8&3) == 3 と ( 8&3) はどちらも equal 0 となりますが、

      ( 1&3) == 3 と ( 1&3) は、一致しません。
      bitmaskと値がたまたま同じだっただけなので、省略は常に可能だとはかぎりません。

      # あと、普段から conditionまわりは booleanを返すように
      # しておいたほうが bugへっていいですね。
      • stat(2)では、S_IFDIR等のst_modeフィールド用のフラグはビットマスク定義だから、
        if (stat.st_mode & S_IFDIR) {
        }
        でいいじゃないか?という疑問が出るのは当然かと。
        とはいえプログラムする上で、全てのフラグがビットマスクとは限らないから、
        if ((stat.st_mode & S_IFDIR) == S_IFDIR) {
        }
        と記述する癖を付けておく方がよいでしょうね。

人生unstable -- あるハッカー

処理中...