【问题标题】:What is the difference between FILE_ATTRIBUTE_NORMAL and 0?FILE_ATTRIBUTE_NORMAL 和 0 有什么区别?
【发布时间】:2014-09-20 09:09:24
【问题描述】:

FILE_ATTRIBUTE_NORMAL (0x80) 和 0 传递给 CreateFile 函数有什么区别?

【问题讨论】:

  • @John:我不认为这是重复的。这个问题问0 做了什么。这个问题询问使用0FILE_ATTRIBUTE_NORMAL 之间有什么区别。 (那里的答案没有回答。)
  • 我实际上很想知道为什么根本没有FILE_ATTRIBUTE_NORMAL(即为什么会有一个表示“未设置标志”的标志,而这就是 0 会做的事情)。大概是历史性的,但我找不到任何解释它的东西。
  • 如果它是历史性的并且没有人知道原因,那么我想阅读 Raymond Chen 的博客文章。有人可以请他写吗? :)
  • 让 Raymond Chen 不写博客的最好方法是让他写博客 :)

标签: c++ windows winapi file-io


【解决方案1】:

来自 CreateFile() 的 MSDN 页面:

注意当 CreateFile 打开现有文件时,它通常将文件标志与现有文件的文件属性结合起来,并忽略作为 dwFlagsAndAttributes 的一部分提供的任何文件属性。

或者换句话说,当您打开现有文件时,您需要一个表示“我不在乎”的值。因为操作系统不在乎。该值为 0。

【讨论】:

    【解决方案2】:

    FILE_ATTRIBUTE_NORMAL 没有明确设置任何属性。如果传递 0,则未指定属性集。

    【讨论】:

      猜你喜欢
      • 2016-03-23
      • 2021-06-16
      • 2012-09-23
      • 2021-02-13
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多