方案 我有一個批處理文件a.bat,其包含以下語句子進程擁有用於重定向它的父進程的STD輸出
A.exe >> a.txt
Test.exe >> a.txt
文件A.exe時啓動另一個exe文件說B.EXE (通過_wpopen函數)並返回。但重定向A.exe的輸出後,a.txt的所有權似乎轉移到b.exe。由於b.exe仍在運行,仍然擁有a.txt,因此test.exe無法將其stdout重定向到a.txt。
B.exe無限期運行,不能等待它停止。 而且我也無法將輸出重定向到多個文件。由於這些exe執行是安裝設置的一部分,所以日誌記錄應該是連續的,並且必須對單個文件執行
這種情況下是否有任何可能的解決方案?我希望在a.exe返回後文件a.text是免費的!
取決於有多少'。你正在運行,多久,你可以改變。 「Test.exe」加入之前,「a.exe」及其鏈接的「b.exe」運行多長時間 - 可能是一個簡單的延遲將其排除?你能重新安排一些東西,讓'a.exe'不再啓動'b.exe',而是從批處理文件中調用那個文件嗎? –
未經測試,但我認爲沒有理由不工作。您可以嘗試用CreateProcess替換_wpopen,明確定義STARTUP_INFO結構中的句柄。或者你可以發送每個輸出到一個單獨的文件。 –
感謝您的回覆,但您的兩條建議似乎都不適用於我的背景。我已經編輯了問題以更清晰。 – ScarCode