The fs.createReadStream()
and fs.createWriteStream()
only support file paths but I need to read (or write) from a file descriptor (passed to/from a child process).
Note I need Streams, so fs.open/fs.read/fs.write
are not sufficient.
The fs.createReadStream()
and fs.createWriteStream()
only support file paths but I need to read (or write) from a file descriptor (passed to/from a child process).
Note I need Streams, so fs.open/fs.read/fs.write
are not sufficient.
When you call fs.createReadStream you can pass in a file descriptor:
var fs = require('fs');
var fd = fs.openSync('/tmp/tmp.js', 'r');
var s = fs.createReadStream(null, {fd: fd});
s.pipe(process.stdout);
If there is a fd
option, the filename is ignored.
fs.createReadStream('', {fd: fd})
instead of null
. –
Planking // Open &3:
process.oob1 = fs.createWriteStream(null, { fd: 3 });
// Write to &3 / oob1 (out-of-band 1)
process.oob1.write("Note: this will throw an exception without 3>&1 or something else declaring the existence of &3");
© 2022 - 2024 — McMap. All rights reserved.
fs.createWriteStream(null, {fd: fd});
. Weird this is not documented in the manual, but it works like a charm. – Mainsheet