在 C++ 中重新创建文件后文件丢失的写权限

安图菲利普

我有一个 MFC 应用程序,它有 2 个 exe。它们共享一个用于读写的公共资源文件。一旦文本文件超过其大小限制,它就会重新创建。之后,只有一个 exe 能够写入文件。即写权限在娱乐后丢失。

下面是用于创建新文件的一段代码。

CreateFile(FileName, GENERIC_ALL, FILE_ALL_ACCESS, NULL,
           OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

你能提出任何解决方案。提前致谢。

可检查

这将错误的参数传递给CreateFile,包括dwDesiredAccessdwShareMode前者请求比需要更多的访问权限。但是,后者是致命的,因为它请求一个与访问模式冲突的共享模式(它使用了一个不打算在这里使用的符号常量)。

要打开文件以进行读/写访问,同时授予其他调用者以相同权限访问该文件,请改用以下代码:

CreateFile(FileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
           OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

创建和打开文件的 MSDN 条目列出了兼容的访问和共享模式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用tcpdump和c ++重新创建文件?

为什么在C(Linux)中创建文件需要执行权限和写权限?

为什么要在c(Linux)中执行权限以及创建文件所需的写入权限?

尝试在新创建的目录中创建文件时转到“权限被拒绝”?

tee -a不会重新创建文件

重新创建文件夹结构

C创建文件

在C中以只读模式创建文件

使用open()在C中创建文件

即使授予用户组完全权限,也无法在C:\ ProgramData \中创建文件

丢失.idea文件夹后,如何在Android Studio中重新创建项目?

还原/恢复/重新创建tokudb表(从丢失的状态文件中)

如何像在 Python 中一样在 C++ 中重新创建默认参数?

重新创建函数签名并通过C ++中的模板包进行调用

试图用C ++中的JS重新创建这段代码

使用crcmod在Python中重新创建C CRC32算法

在C#中列出SSL证书(重新创建IIS绑定对话框)

在 C# 中重新创建 python b64encode 和 hmac 函数的问题

为什么将EXE文件转换为二进制代码,添加到C并重新创建,为什么不起作用?

在C ++编程中的文件夹中创建文件

无法弄清楚文件发生了什么,也无法在eclipse中重新创建文件

如何使用C#中的所有权限在C目录中创建文件夹?

在删除和重新创建新文件后创建文件的ListView

自动授予文件夹中新创建文件的权限

C# - 设置新创建的 xml 文件的构建操作的代码

授予默认写权限以分组到任何新创建的文件和文件夹

重复复制特定模式的文件并重新创建文件夹层次结构

逐行读取文件并通过Groovy重新创建文件

是否可以忽略git中的文件重新创建?