小编use*_*407的帖子

在另一个进程写入文件时读取文件

我正在尝试从缓冲区文件中读取二进制数据,该文件由不同的进程(我无法修改)连续写入.我正在使用以下代码打开文件:

fileH = CreateFileA((LPCSTR)filename,
                    GENERIC_READ,
                    FILE_SHARE_READ | FILE_SHARE_WRITE,
                    NULL,
                    OPEN_EXISTING,
                    FILE_ATTRIBUTE_NORMAL, NULL);
Run Code Online (Sandbox Code Playgroud)

它正确打开,没有错误.但是,当我从文件中读取数据时,它似乎阻止了其他进程写入文件,因为我丢失了数据.

缓冲区是循环的,这意味着文件大小是固定的,并且新数据会不断写入缓冲区中的旧数据.

编辑: 有时最琐碎的解决方案有效......

我已经联系了这家软件公司并告诉他们这个bug,并在一天之内发布了一个带有修复程序的新版本.对不起,这不适用于所有人.

c++ windows winapi file createfile

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

createfile ×1

file ×1

winapi ×1

windows ×1