2014-09-20 102 views
9

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

+2

@约翰:我不认为这是重复的。这个问题问什么'0'。这个问题询问了使用'0'和'FILE_ATTRIBUTE_NORMAL'之间的区别。 (这里没有答案) – 2014-09-20 09:15:31

+4

我真的有兴趣知道**为什么**有一个'FILE_ATTRIBUTE_NORMAL'(即为什么有一个标志意思是“没有标志设置”,当这是什么0会做)。据推测历史,但我找不到解释它的任何东西。 – 2014-09-20 09:22:12

+0

如果它是历史性的,没有人知道原因,那么我想阅读Raymond Chen的博客文章。有人可以请他写信吗? :) – vkrzv 2014-09-20 09:42:02

回答

6

从的CreateFile()的MSDN页:

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

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

1

FILE_ATTRIBUTE_NORMAL明确设置没有属性。如果您传递0,那么这组属性是未指定的。

相关问题