是否将process.stdin数字文件描述符转换为FileHandle



如何将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.fdprocess.stdout.fd(分别为0和1(相同的底层文件描述符,但它应该达到基本相同的效果。

最新更新