gpt4 book ai didi

C++ 锁定后读取文件

转载 作者:太空宇宙 更新时间:2023-11-04 13:46:19 26 4
gpt4 key购买 nike

我是第一次处理文件锁定,在 Google 中找不到解决方案的相关帖子。

我正在使用此代码锁定文件以锁定文件。

ifile = CreateFileW(FileName, GENERIC_READ |  GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_DELETE | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

在下一行中,我尝试使用

打开同一个文件
errno_t ErrorNumber = _wfopen_s(FileHandle, FileName, "rb");

目的是锁定文件以防止任何其他进程写入它,同时此函数正在读取其内容。使用“rb”打开文件时出现 EACCESS : 13 错误代码。

锁定文件后为什么以及如何启用读取文件的任何想法?

谢谢素加他

最佳答案

要在 Win32 上创建一个不允许其他进程打开它的“锁定文件”:

ifile = CreateFileW(FileName, GENERIC_READ |  GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_FLAG_DELETE_ON_CLOSE, NULL);
共享模式的

CREATE_NEW0 确保文件只会被您的进程打开,而 FILE_FLAG_DELETE_ON_CLOSE 确保它会被当您关闭文件或您的进程(天堂禁止)崩溃时自动删除。

不过,这是在 Win32 上实现跨进程锁定的一种有点笨拙的方法。共享互斥量的发明就是为了解决这个问题。

关于C++ 锁定后读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25804959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com