如何将process.stdin
中的数字文件描述符转换为FileHandle
对象,如fs.promises.open()
返回的对象?
理由:
- 希望以统一的方式使用stdin或命名输入文件
-
讨厌基于数字文件描述符的统一方式(可以通过使用
filehandle.fd
来完成,但eughh(
至少从19.2.0开始,似乎没有一种稳定的方法可以从fd
值中获得FileHandle
。这里有一项复杂的工作可能会奏效,但显然不是推荐的方法:https://github.com/nodejs/node/issues/43821
如果你不支持Windows,你可以做:
import fs from "node:fs/promises"
const inputFileHandle = await fs.open("/dev/stdin", "r")
const outputFileHandle = await fs.open("/dev/stdout", "w")
它实际上并没有使用与process.stdin.fd
和process.stdout.fd
(分别为0和1(相同的底层文件描述符,但它应该达到基本相同的效果。