当前位置:  开发笔记 > 编程语言 > 正文

如何打开"nul"文件?

如何解决《如何打开"nul"文件?》经验,为你挑选了1个好方法。

我需要创建一个新的进程,将标准错误流重定向到某个文件.正在创建子进程的代码没有可用的控制台,因此有些情况下GetStdHandle(any)将返回0.由于某种原因,子进程将尝试复制其所有标准IO句柄(子进程的源代码不可用)所以它的所有句柄都应该是有效的.

因此,我需要以与从控制台运行的方式相同的方式运行该过程:

someproc nul 2>err

我看到了一些方法:1.创建两对管道.这可能是一个很好的解决方案,但对我来说太复杂了.2.使用CreateFile("nul",...)函数调用打开"nul"文件.此调用没有创建文件,但这看起来很奇怪.3.使用INVALID_HANDLE_VALUE.这也有效,但我认为另一个子进程可能存在不同的问题.

我相信有更好的方法.



1> Rob Kennedy..:

正如最初的措辞,你已经回答了自己的问题.要打开"nul"文件,只需指定"nul"呼叫时间即可CreateFile.它看起来很奇怪,因为几乎没有人使用过该文件名.(我看不到它的使用频率和我看到的一样频繁/dev/null.)但它完全有效.

但是,如果你发现它Invalid_Handle_Value也有效,那么请继续使用它.这当然是最简单的.我最初不会期望它能够工作,因为我不希望它是可复制的.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有