MSDN中API函数CreateFile的错误信息的描述不正确哦

本文探讨了CreateFile函数在处理已存在且具有只读和系统属性文件时的实际行为与MSDN文档描述之间的差异。实验证明,当尝试创建此类文件时,GetLastError返回的并非ERROR_ALREADY_EXISTS(183),而是80(文件存在)。这一发现对于理解Windows文件操作至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天写代码的时候忽然发现,CreateFile的错误信息并不像MSDN所说的那样

    当文件已存在,并且是只读+系统属性时,返回的是0xffffffff,但是GetLastError返回的是80,而不是像MSDN所说:“即使函数成功,但若文件存在,且指定了CREATE_ALWAYS 或 OPEN_ALWAYS,GetLastError也会设为ERROR_ALREADY_EXISTS”的ERROR_ALREADY_EXISTS。

    ERROR_ALREADY_EXISTS定义为183L,183的是“当文件已存在时,无法创建该文件。 ”而GetLastError返回的80的错误描述是“文件存在。 ”。

    于是,大家注意别被忽悠哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值