windows - titel - title tag länge




Wie kann ich von Node.js auf das NUL-Gerät unter Windows schreiben? (2)

Das nervt mich seit einigen Tagen. Ich kenne die Standard-Stream-Umleitung zum NUL-Gerät, aber das ist nicht der Fall. node.js verwendet CreateFileW unter seinen fs native / libuv Bindings.

Leider mit etwas wie:

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

Erstellt eine NUL-Datei in der cwd, die 3 Bytes hat.

Ich habe versucht, in das \ Device \ Null zu schreiben, aber da ich so ziemlich ein * nix-Kopf bin, wo alles eine Datei ist, konnte ich keinen Arbeitspfad für \ Device \ Null finden. Wie \\. \ Device \ Null, das ENOENT auslöst.

Irgendwelche Ideen, wie dies unter Windows funktioniert?

Dies scheint verwandt zu sein, aber ich kann den gesamten Fluss von lib / fs.js zu uv / src / win / fs.c nicht verfolgen, um zu überprüfen, dass das Pfadargument nicht unter irgendeiner Art relativ zur absoluten Pfadauflösung leidet.



Der gültige Pfad zum NUL Gerät lautet "\\\\.\\NUL" , nicht NUL , daher lautet die Verwendung: fs.writeFileSync("\\\\.\\NUL", "foo") . Dieses Problem wurde mit Node.js auf GitHub behoben: https://github.com/nodejs/node-v0.x-archive/issues/9271

Da NUL ein Gerät und keine Datei ist, muss es über den Namespace des Geräts aufgerufen werden - dazu muss am Anfang \\.\ Gesetzt werden (die anderen Schrägstriche dienen zum Entkommen) - siehe https://msdn.microsoft.com/de -gb / library / windows / desktop / aa365247.aspx # Win32_Device_Namespaces .

Es gibt auch eine einfache dev-null Bibliothek auf NPM, die mit Streams verwendet werden kann: https://www.npmjs.com/package/dev-null (nicht mit .writeFile though).





nul