1
我正在考慮使用命名管道從DLL的調試輸出。我的DLL由一個專有的閉源程序加載,它不時崩潰。問題是,當程序崩潰時,我的一些當前日誌輸出會丟失,因爲在將所有內容寫入磁盤之前,Windows會清理所有內容。如何在Windows上清除命名管道?
所以我的問題是,如果我在一個單獨的進程中創建一個命名管道,並從我的DLL連接到它,並且我的DLL在崩潰並被清理的進程將仍然能夠讀取寫入命名管道就在我的第二個進程崩潰之前?
我必須寫入非阻塞(緩衝)莊園中的命名管道,以儘可能少地影響時序,什麼是最佳配置?重疊的IO?有人能給出一個好的閱讀鏈接嗎? (我不是C++初學者,但是我是WinAPI初學者)
謝謝,問題是一些瘋狂的人決定在某些例程中超時2毫秒,所以我根本無法刷新任何緩衝區或導致錯誤,非常令人沮喪。 – odinthenerd 2013-02-08 19:07:50
如果我初始化一個內存映射文件,其中所有\ 0's大於我的最大期望調試,並且源崩潰,那麼接收器就可以讀取,直到它連續遇到幾個\ 0爲止。我需要的只是數據仍在那裏 – odinthenerd 2013-02-08 19:11:04
是的,只要你確信你永遠不會看到「數據結束」模式合法。試圖想想所有的問題,你需要什麼取決於所需的穩健性水平。還有,如果你確實溢出了映射文件會發生什麼?可能重置後重新開始,但重置多少? – 2013-02-08 19:12:48