Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说创建打开文件sd3000_dmp文件用什么打开,希望能够帮助你!!!。
CreateFile() 函数用以打开和创建文件,函数原型声明如下:
HANDLE WINAPI CreateFile(
__in LPCTSTR lpFileName,
__in DWORD dwDesiredAccess,
__in DWORD dwShareMode,
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
__in DWORD dwCreationDisposition,
__in DWORD dwFlagsAndAttributes,
__in_opt HANDLE hTemplateFile
);
在 Windows 中,创建和打开文件的 API 都是 CreateFile() 函数,并通过指定不同的参数来表示是创建一个文件,打开已存在的文件,还是重新建立文件等。 第 1 个参数 lpFileName 是个输入参数,表示操作的对象文件的相对路径或绝对路径。 第 2 个参数 dwDesiredAccess 是个输入参数,指名对文件对象的操作存取方式,比如是 GENERIC_READ(读文件),GENERIC_WRITE(写文件) 。 第 3 个参数 dwShareMode 是个输入参数,表示共享模式。指名与其他进程是否共享该文件,可以是共享读(FILE_SHARE_READ),共享写(FILE_SHARE_WRITE),共享删除(FILE_SHARE_DELETE)。如果指名多个属性,那么可用 "|" 将几个属性做或运算。如果本进程需要独占本文件,那么就将该参数设置为 0 。 第 4 个参数 lpSecurityAttributes 是一个指向 SECURITY_ATTRIBUTES 结构的指针,表示本文件句柄的安全属性,能影响其是否可被子进程继承等操作。如果设为 NULL,则子进程不能继承本句柄。该结构并不常用。 第 5 个参数 dwCreationDisposition 是个输入参数,表示操作模式。 第 6 个参数 dwFlagsAndAttributes 是个输入参数,是文件属性和文件标志。 第 7 个参数 hTemplateFile 是个输入参数,当存取权限包括 GENERIC_WRITE 时,可以设置为一个模板文件的句柄,一般情况下该参数可设为 NULL ,表示不使用模板文件。 函数的参数选项众多,下面主要列出比较重要且常用的几个进行说明。 dwShareMode 0 -- 文件不能共享,且本进程不能在这个文件上打开第 2 个 HANDLE 。 FILE_SHARE_READ -- 其他进程,包括进行本调用进程,可以打开这个文件并进行并发访问。 FILE_SHARE_WRITE -- 允许并发写文件。 lpSecurityAttributes 该参数指向一个 LPSECURITY_ATTRIBUTES 结构,一般使用中可置为 NULL 。 dwCreationDisposition 该参数指定是否创建文件,覆盖现有文件等。选项有以下几个: 1. CREATE_NEW 创建新文件,如果指定的文件已经存在那么失败。 2. CREATE_ALWAYS 创建新文件,如果文件存在则重建该文件,清楚文件内容及文件属性;如果文件不存在,则创建一个个新文件。 3. OPEN_EXISTING 打开现有文件,如果文件不存在则失败。 4. OPEN_ALWAYS 如果文件存在,则打开文件;如果不存在,则创建它,此时等同于 CREATE_NEW。 5. TRUNCATE_EXISTING 将文件长度置为 0.使用该选项时,必须至少指定 GENERIC_WRITE 访问权限,如果文件不存在时则失败,对于已经存在的文件,则该文件的内容会被全部销毁。 dwFlagsAndAttributes 该参数指定文件的属性和长度,一共有 32 个标志和属性。属性是文件的特征,且与打开的文件句柄形成对照,如果打开的是现有文件,那么这些标志将被忽略。以下几个是比较常见且重要的属性和标志值。 1. FILE_ATTRIBUTE_NORMAL 该属性只可在不设置其他属性(可以设置标志)时才能使用。 2. FILE_ATTRIBUTE_READONLY 只读文件,应用程序不能写也不能删除文件。 3. FILE_ATTRIBUTE_ARCHIVE 存档文件 4. FILE_ATTRIBUTE_ENCRYPTED 加密文件 5. FILE_ATTRIBUTE_HIDDEN 隐藏文件 6. FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 没有使用内容索引服务 7. FILE_ATTRIBUTE_OFFLINE 离线存储文件 8. FILE_ATTRIBUTE_SYSTEM 系统文件 9. FILE_ATTRIBUTE_TEMPORARY 临时文件 dwFlagsAndAttributes 1.FILE_FLAG_DELETE_ON_CLOSE 对临时文件有用,当最后一个打开的句柄被关闭时,Windows 会删除这个文件。 2.FILE_FLAG_OVERLAPPED 以异步 I/O 方式创建可打开文件,这个属性标志对异步 I/O 比较重要。 3.FILE_FLAG_RANDOM_ACCESS 设置该属性标志时,在程序对文件进行随机访问时,Windows 会尝试优化文件缓存。 4.FILE_FLAG_SEQUENTIAL_SCAN 该属性标志表示文件用于顺序访问,Windows 将相应的优化缓存。 5.FILE_FLAG_BACKUP_SEMANTICS 打开和创建文件是为了进行备份和恢复操作。 6.FILE_FLAG_NO_BUFFERING 不使用系统缓存(cahing,不同于硬件缓存) 5.FILE_FLAG_NO_BUFFERING 不使用系统缓存(cahing,不同于硬件缓存) 7.FILE_FLAG_NO_RECALL 远程存储 8.FILE_FLAG_WRITE_THROUGH 存取文件时,对磁盘进行直接操作,不经过缓存 9.FILE_FLAG_POSIX_SEMANTICS 按照 POSIX 规则存取 10.FILE_FLAG_OPEN_REPARSE_POINT 系统将禁止 NTFS 文件系统的“再解析”行为 |
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。