fs.writeSync(1,"字符串")在Node.js中意味着什么?

时间:2017-07-11 19:52:49

标签: node.js fs

From the docs:

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

1 stdout流吗?我已经阅读了fs.write的文档,并且没有讨论如何在第一个参数中使用整数。 source code也没有多大帮助。

我把这行

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

进入我的代码,认为它会转到stdout 但是当我启动我的应用时没有像那样的输出。它确实输出了。

现在好了,我发现它确实有效(输出到控制台):虽然记录在哪里?

2 个答案:

答案 0 :(得分:4)

来自the fs documentation

  

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

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

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

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

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

答案 1 :(得分:0)

文档绝对显示整数&#f;'作为第一个论点,我不确定你为什么说它没有。除了他们的POSIX文件描述符之外,Node文档中没有包含数字1的含义。维基百科涵盖了这些信息。 https://en.m.wikipedia.org/wiki/File_descriptor