我正在嘗試從不同的進程(我不能修改)連續寫入的緩衝區文件中讀取二進制數據。我使用的是爲了下面的代碼來打開文件:讀取正在被其他進程寫入的文件
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