createfile调用失败_汇编语言CreateFile函数:创建新文件或者打开已有文件
函数 CreateFile 可以创建一个新文件或者打开一个已有文件。如果调用成功,函数返回打开文件的句柄;否则,返回特殊常数 INVALID_HANDLE_VALUEO 原型如下:
CreateFile PROTO, ;创建新文件
lpFilename:PTR BYTE, ;文件名指针
dwDesiredAccess:DWORD, ;访问模式
dwShareMode:DWORD, ;共享模式
lpSecurityAttributes:DWORD, ;安全属性指针
dwCreationDisposition:DWORD, ;文件创建选项
dwFlagsAndAttributes:DWORD, ;文件属性
hTemplateFile:DWORD ;文件模板句柄
下表对参数进行了说明。如果函数调用失败则返回值为零。
参数说明
lpFileName
指向一个空字节结束字符串,该串为部分或全部合格的文件名(drive:pathfilename)
dwDesiredAccess
指定文件访问方式(读或写)
dwShareMode
控制多个程序对打开文件的访问能力
lpSecurityAttributes
指向安全结构,该结构控制安全权限
dwCreationDisposition
指定文件存在或不存在时的操作
dwFlagsAndAttributes
包含位标志指定文件属性,如存档、加密、隐藏、普通、系统和临时
hTemplateFile
包含一个可选的文件模板句柄,该文件为已创建的文件提供文件属性和扩展属性;如果不使用该参数,就将其设置为 0
dwDesiredAccess
参数 dwDesiredAccess 允许指定对文件进行读访问、写访问、读/写访问,或者设备查询访问。可以从下表列出的值中选择,也可以从表中未列出的更多特定标志值选择。
值含义
0
为对象指定设备查询访问。应用程序可以查询设备属性而无需访问设备,也可以检查文件是否存在
GENERIC_READ
为对象指定读访问。可以从文件中读取数据,文件指针可以移动。与 GENERIC_WRITE 一起使用为读/写访问
GENERIC_WRITE
对对象指定写访问。可以向文件中写入数据,文件指针可以移动。与 GENERIC_READ 一起使用为读/写访问
dwCreationDisposition
参数 dwCreationDisposition 指定当文件存在或不存在时应采取怎样的操作。可从下表中选择一个值。
值含义
CREATE_NEW
创建一个新文件。要求将参数 dwDesiredAccess 设置为 GENERIC_WRITE。如果文件已经存在,则函数调用失败
CREATE_ALWAYS
创建一个新文件。如果文件已存在,则函数会覆盖原文件,清除现有属性,并合并文件 属性与预定义的常数 FILE_ATTRIBUTES_ARCHIVE 中属性参数指定的标志。要求将参数 dwDesiredAccess 设置为 GENERIC WRITE
OPEN_EXISTING
打开文件。如果文件不存在,则函数调用失败。可用于读取和/或写入文件
OPEN_ALWAYS
如果文件存在,则打开文件。如果不存在,则函数创建文件,就好像CreateDisposition 的值为 CREATE NEW
TRUNCATE_EXISTING
打开文件。一旦打开,文件将被截断,使其大小为零。要求将参数 dwDesiredAccess 设置为 GENERIC_WRITE。如果文件不存在,则函数调用失败
下表列出了参数 dwFlagsAndAttributes 比较常用的值。(完整列表请在 Microsoft 在线文档中搜索CreateFiko)允许任意属性组合,除了 FILE_ATTRIBUTE_NORMAL 会被其他 所有属性覆盖。这些值能映射为 2 的幂,因此可以用汇编时 OR 运算符或 + 运算符将它们组 合为一个参数:
FILE_ATTRIBUTE_HIDDEN OR FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_HIDDEN + FILE_ATTRIBUTE_READONLY
属性含义
FILE_ATTRIBUTE_ARCHIVE
文件存档。应用程序使用这个属性标记文件以便备份或移动
FILE_ATTRIBUTE_HIDDEN
文件隐藏。不包含在普通目录列表中
FILE_ATTRIBUTE_NORMAL
文件没有其他属性设置。该属性只在单独使用时有效
FILE_ATTRIBUTE_READONLY
文件只读。应用程序可以读文件但不能写或删除文件
FILE_ATTRIBUTE_TEMPORARY
文件被用于临时存储
【示例】下面的例子仅具说明性,展示了如何创建和打开文件。请参阅在线从 Microsoft文 档,了解 CreateFile 更多可用选项:
打开并读取(输入)已存在文件:
INVOKE CreateFile, ADDR filename, ;文件名指针 GENERIC_READ, ;读文件 DO_NOT_SHARE, ;共享模式 NULL, ;安全属性指针 OPEN_EXISTING, ;打开已存在文件 FILE_ATTRIBUTE_NORMALA ;普通文件属性 0 ;未使用
打开并写入(输出)已存在文件。文件打开后,可以通过写入覆盖当前数据,或者将文件指针移到末尾,向文件添加新数据(参见11.1.6节的SetFilePointer):
INVOKE CreateFile, ADDR filename, GENERIC_WRITEZ, ;写文件 DO_NOT_SHARE, NULL, OPEN_EXISTIN, ;文件必须存在 FILE_ATTRIBUTE_NORMAL, 0
创建有普通属性的新文件,并删除所有已存在的同名文件:
INVOKE CreateFile, ADDR filename, GENERIC_WRITE, ;写文件 DO _NOT_SHARE, NULL, CREATE_ALWAYS, ;覆盖已存在的文件 FILE_ATTRIBUTE_NORMAL, 0
若文件不存在,则创建文件;否则打开并输出现有文件:
INVOKE CreateFile, ADDR filename, GENERIC_WRITE, ;写文件 DO_NOT_SHARE, NULL, CREATE_NEW, ;不删除已存在文件 FILE_ATTRIBUTE_NORMAL, 0
createfile调用失败_汇编语言CreateFile函数:创建新文件或者打开已有文件相关推荐
- 创建文件 c语言,汇编语言CreateFile函数:创建新文件或者打开已有文件
函数 CreateFile 可以创建一个新文件或者打开一个已有文件.如果调用成功,函数返回打开文件的句柄:否则,返回特殊常数 INVALID_HANDLE_VALUEO 原型如下: CreateFil ...
- python创造订单失败_使用Python API创建新订单,get AttributeError:“str”对象没有属性“iteritems”...
我掌握的代码是new_order = shopify.Order.create(json.dumps({'order': { "email": "foo@example. ...
- 无法创建新虚拟机: 无法打开配置文件“E:\Linux\“: 拒绝访问
无法创建新虚拟机: 无法打开配置文件"E:\linux\111\Red Hat Enterprise Linux 7 64 位.vmx": 拒绝访问. 当我们遇到这种情况时 1.首 ...
- createfile调用失败_CreateFile 函数说明
CreateFile 函数说明 简介: 创建或打开文件或 I/O 设备.常用的 I/O 设备有:文件,文件流,目录,物理磁盘,卷,控制台缓冲区,磁带驱动器,通信资源,邮筒和管道. 该函数返回一个句柄, ...
- createfile调用失败_CreateFile函数祥解
CreateFile函数祥解 CreateFile The CreateFile function creates or opens the following objects and returns ...
- createfile调用失败_CreateFile函数详解(确实很详细)
CreateFile The CreateFile function creates or opens the following objects and returns a handle that ...
- createfile调用失败_Java NIO Files.createFile()以NoSuchFileException失败
我试图在dev-test-prod设置中放置一些核心文件.基本上,如果文件较新,则需要将其复制到下一级,作为质量检查过程的一部分. 我使用Java 8,所以我决定第一次尝试NIO Files / Pa ...
- 护士资格证延续注册WEB服务调用失败_服务熔断
熔断机制是应对服务雪崩效应的一种微服务链路保护机制,当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息.当检测 ...
- nw.js 调用驱动程序_使用NW.js创建照片发现应用程序(第2部分)
nw.js 调用驱动程序 NW.js (formerly known as Node Webkit) is a framework for creating cross-platform deskto ...
最新文章
- 不要动态修改 DOM 里面的 id 属性
- Lesson 016 —— python 元组
- (个人备忘)多人开发 no file directory.....的问题
- 【分享】如何管理焦虑情绪
- json接口文档模板_在.Net Core WebAPI下给Swagger增加导出离线文档功能
- 简单的Jquery焦点图切换效果
- 《那些年啊,那些事——一个程序员的奋斗史》四
- 多页TIF转PDF 【JAVA】
- iOS App 性能优化总结
- Mybatis CRUD操作和多表查询
- 程序员如何做好自己的职业规划
- QT(5.12)+Qgis(3.10) 点图层及线图层渲染
- mui12搭载鸿蒙,MUI系统最新资讯
- mysql8设置局域网访问
- mybatis mysql 调用存储过程 多个返回值_被Mybatis坑惨了
- HTML卡片式布局源码,html5自适应卡片式设计动态加载整站源码_
- 徽章系列3: Travis CI 的使用
- 苹果id界面无法打开解决方法「iphone技巧」
- Windows Linux对应软件
- php 股票数据 sina,腾讯股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据...