我正在寫一個主應用程序可執行文件的日誌文件,我希望附加的可執行文件也要附加到該日誌文件中。我有CreateFileEx從所有可執行文件打開並正確寫入,但是當子可執行文件寫入該文件(並且成功),然後父文件寫入該文件後不幸地覆蓋了該子文件的內容。例如...Win32日誌文件附加共享進程寫入
1) Parent opens log.
2) Parent writes 'Line A' to log
Log: 'Line a\n'
3) Parent launches child executable
4) Child writes 'Child Line A' to log
Log: 'Line A\nChild Line A\n'
5) Parent writes 'Line B' to log.
Log: 'Line A\nLine B\n
我一直在使用LockFileEx/UnlockFileEx(設置爲0的偏移和長度MAXDWORD),甚至試圖SetFilePointer到指針移動到結束都沒有成功。即在上面的寫作序列中將等同於。
a) LockFileEx
b) SetFilePointer
c) ... write data ...
d) UnlockFileEx
注:我添加了正確的權限,如無緩衝,當我打開文件等,甚至試圖FlushFileBuffers沒有成功。
我會假設父文件HANDLE不知道更改,因此SetFilePointer(fHandle,0,NULL,FILE_END)認爲它已經在最後。
任何想法?
在此先感謝 蒂姆 -
出現這種情況,而不是使用經過充分測試的系統服務,當您試圖推出自己的。 [Windows的事件跟蹤](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968803.aspx),您正在嘗試實施什麼。 – IInspectable