2014-09-20 134 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,那麼這組屬性是未指定的。

相關問題