我正在尝试从不同的进程(我不能修改)连续写入的缓冲区文件中读取二进制数据。我使用的是为了下面的代码来打开文件:读取正在被其他进程写入的文件
fileH = CreateFileA((LPCSTR)filename,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
而且它没有错误正确打开。但是,当我从文件中读取数据时,似乎阻止其他进程写入文件,因为我丢失了数据。
缓冲区是循环的,这意味着文件大小是固定的,并且新数据不断写入缓冲区中较旧的数据。
编辑: 有时,最琐碎的解决方案工作...
我已经联系这家软件公司,并告诉他们有关的bug,并在一天之内,他们贴有一个修复的新版本。 对不起,这不适合每个人。
同时读写一个文件是一个坏主意。尝试使用'Mutex'或'Events'来处理访问。 – 2013-03-13 12:29:22
@ bash.d,真的吗?告诉“尾巴”和类似的工具。您也无法使用互斥锁和事件来同步进程。另外他说他不能修改其他应用程序。 – 2013-03-13 12:34:25
@aleguna地狱,是的,你可以!阅读第一行[这里](http://msdn.microsoft.com/en-us/library/windows/desktop/ms686927(v = vs.85).aspx)。 – 2013-03-13 12:40:47