我需要用重定向的標準錯誤流創建一個新的進程到某個文件。創建子進程的代碼沒有可用的控制檯,因此有時候GetStdHandle(any)將返回0.子進程將嘗試複製其所有標準IO句柄(出於某種原因)(子進程的源代碼不可用)所以它的所有句柄都應該是有效的。如何打開「nul」文件?
所以我需要運行過程中以同樣的方式,因爲它是可以從控制檯跑了:
someproc <nul >nul 2>err
我看到這一些方法: 1.創建兩對管。這可能是一個很好的解決方案,但對我來說這太複雜了。 2.使用CreateFile(「nul」,...)函數調用打開「nul」文件。這個調用沒有創建任何文件,但這看起來很奇怪。 3.使用INVALID_HANDLE_VALUE。這也適用,但我認爲可能會有與另一個子進程不同的問題。
我相信有更好的方法。
非常好!感謝列出可能性。 – 2014-02-27 03:31:52