我需要用重定向的标准错误流创建一个新的进程到某个文件。创建子进程的代码没有可用的控制台,因此有时候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