我正在尝试从缓冲区文件中读取二进制数据,该文件由不同的进程(我无法修改)连续写入.我正在使用以下代码打开文件:
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,并在一天之内发布了一个带有修复程序的新版本.对不起,这不适用于所有人.