fs.writeSync(1, "a string") 在 Node.js 中是什么意思?

What does fs.writeSync(1, "a string") mean in Node.js?

From the docs:

process.on('uncaughtException', (err) => {
  fs.writeSync(1, `Caught exception: ${err}\n`);
});

1 是标准输出流吗?我已经阅读了 fs.write 的文档,但没有讨论如何在第一个参数中使用整数。 source code 也没什么用。

我把这行

(require('fs')).writeSync(1, `Starting...`);

进入我的代码,以为它会转到标准输出但是当我启动我的应用程序时没有这样的输出。它确实输出了。

好吧,现在我看到它确实有效(输出到控制台):但是这在哪里记录?

来自the fs documentation

fs.writeSync(fd, buffer[, offset[, length[, position]]])

在 Unix 派生系统上使用 nominal types like FILE 传递文件句柄很常见,但实际上所有文件都由称为 文件描述符 [=37= 的无符号整数表示和引用] 或 fd(也可以指其他类型的打开文件,包括管道、FIFO、套接字、终端、设备)

关于 1 的参数从何而来,所有符合 Single Unix Specification 的系统在启动 shell 时都会继承三个这样的文件描述符,这些进程从 shell继承。

  • 描述符 0 是标准输入,进程从中获取输入的fd
  • 描述符 1 是标准输出,进程将其输出写入的fd
  • 描述符 2 是 标准错误,进程向其写入错误消息的fd

所有这三个通常都连接到 shell(因此终端仿真器的)输出。

文档确实将整数 'fd' 显示为第一个参数,我不确定您为什么说没有。除了声明它们是 POSIX 文件描述符之外,Node 文档中没有涵盖数字 1 的含义。该信息包含在维基百科中。 https://en.m.wikipedia.org/wiki/File_descriptor