我怎么能写NUL设备在Windows下从Node.js的?(How can I write to t

2019-07-29 23:15发布

现在这是窃听了我好几天。 我知道的标准流重定向到NULL设备,但这种情况并非如此。 node.js中使用CreateFileW在其本土FS / libuv绑定。

不幸的是使用类似:

require('fs').writeFileSync('NUL', 'foo')

创建一个NUL文件合并到具有3个字节的CWD。

我试图写\设备\空,但因为我是一个很值得的* nix头这里的一切是一个文件,我没有真正找到\设备\空工作路径。 如抛出ENOENT \\。\设备\空。

如何使Windows下这项工作任何想法?

这似乎是相关的,但我无法追踪的lib / fs.js到UV / src目录/ WIN / fs.c整个流程,以检查路径参数不会从某种相对于绝对路径解决之苦。

Answer 1:

到有效的路径NUL设备是"\\\\.\\NUL"NUL ,所以用法是: fs.writeFileSync("\\\\.\\NUL", "foo") 。 这个问题是产生针对Node.js的GitHub上: https://github.com/nodejs/node-v0.x-archive/issues/9271

由于NUL是一个设备,而不是一个文件,它必须通过设备命名空间访问-这需要把\\.\在开始的时候(其它斜线是转义) -见https://msdn.microsoft.com/en -gb /库/窗/台式机/ aa365247.aspx#Win32_Device_Namespaces 。

还有一个简单的dev-null的NPM库,可以用流可以使用: https://www.npmjs.com/package/dev-null (不.writeFile虽然)。



Answer 2:

还有很长的变通方法,如代码它自己。 但是你可以从这里拿个主意https://github.com/hanshuebner/node-hid/blob/master/src/HID.cc ,写在C库的包装。



文章来源: How can I write to the NUL device under Windows from node.js?