在CreateFile方法中,dwFlagsAndAttributes = 0是什么意思?

3
所以我正在使用CreateFile函数来进行我目前正在进行的C#项目。我看到一些例子将dwFlagsAndAttributes参数传递为0
尽管我正在阅读文档,但它没有说明设置dwFlagsAndAttributes = 0的含义。这只是一种不设置标志或属性的方法吗?
此方法的C#语法为:
[DllImport("kernel32.dll", SetLastError = true)]
static extern SafeFileHandle CreateFile(string lpFileName, 
       FileAccess dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes,
       FileMode dwCreationDisposition, uint dwFlagsAndAttributes, 
       IntPtr hTemplateFile);

非常感谢您的帮助。

3个回答

3

是的,这只是意味着该文件没有特殊性(即它不匹配任何文件属性常量属性)。


3
尽管函数名称为CreateFile,但此函数用于创建和打开文件。如果它被用于打开文件的情况下,则dwFlagsAndAttributes参数通常会被忽略。你经历过的情况可能涉及文件打开和文件创建之间的区别。
如果您使用此方法来创建文件,则应使用FILE_ATTRIBUTE_NORMAL(0x80)。

在打开或创建文件时,传递0和FILE_ATTRIBUTE_NORMAL之间有什么区别吗? - Eran Zimmerman Gonen

3

这只是一种不设置标志或属性的方法吗?

没错。对于作为一组位标志的参数(如此参数),传递0意味着没有设置任何标志。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接