如何在写流中关闭文件描述符

时间:2019-07-23 09:31:10

标签: javascript node.js

我有以下代码,这是我要执行的操作的简化示例:

const fs = require('fs');

var stream = fs.createWriteStream('/tmp/file');
stream.once('open', function(fd) {
    for (var i = 0; i < 100; i += 1) {
        stream.write('' + i + "\n");
    }
    stream.end();
    stream.close();
});

我看到fd是文件描述符,我想关闭它。我叫fd.close(),但这不是方法。

两个问题:

  1. 我应该关闭它吗?
  2. 我如何关闭它?

我在fs.close() and fs.closeSync()上看到了一些文档。我应该用那个吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

  

我打了for

从您链接的文档中:

  

fdStream使用的fd整数文件描述符。

所以fd.close()是一个整数,而不是带有方法的对象。

  

我应该关闭它吗?

是的!否则,您将浪费资源,因为流正在等待处理。您应该通过调用.end() 结束流。这也将关闭基础文件,因此无需手动fd