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

从文档:

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

1的标准输出stream? 我已经阅读了fs.write的文档,并没有讨论如何在第一个参数中使用整数。 源代码也没有太大的帮助。

我把这条线

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

到我的代码,认为它会去标准输出, 但没有这样的输出,当我开始我的应用程序。 并且它输出了。

现在好了,我看到它确实工作(输出到控制台):这是logging在哪里?

fs文件

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

通常在使用名义types如FILE Unix衍生系统上传递文件句柄,但实际上所有的文件都是由一个无符号的整数(称为文件描述符fd表示和引用的(也可以引用其他types的打开文件,包括pipe道,FIFO,sockets,terminal,设备)

关于1的参数来自哪里,符合Single Unix Specification的所有系统在启动一个shell时会inheritance三个这样的文件描述符,这个shell从这个shellinheritance而来。

  • 描述符0是标准input ,过程进行inputfd
  • 描述符1是标准输出 ,即进程写入输出fd
  • 描述符2是标准错误 ,即进程写入错误消息的fd

所有这三个通常连接到shell(和terminal仿真器)的输出。

该文档绝对显示一个整数“fd”作为第一个参数,我不知道你为什么说它不。 除了声明它们是POSIX文件描述符之外,在Node文档中没有涉及1号的含义。 该信息在维基百科中进行了介绍。 https://en.m.wikipedia.org/wiki/File_descriptor