如何获得文件描述符在node.js中,如果你使用OpenSync的打开文件(How to get f

2019-08-31 13:18发布

我注意到,这可能是一个大问题,但对于OpenSync的,当你打开与OpenSync的一个文件,你没有得到的文件描述符。 如果您使用异步调用打开你只把它作为参数传递给回调。 问题是,你必须有文件描述符关闭文件! 有哪个程序员可能想要做的,你需要的文件描述符以及文件等东西。

这似乎FS的API,用于node.js的一个显著遗漏不提供一种方式来获得访问,在异步模式下打开,如果你打开使用同步调用时,回调返回FD变量。 这将从根本上使大多数应用的同步开unuseable。

我真的不希望有使用异步文件打开和我的开发关闭以后,如果我能避免它,有没有什么办法让FD可变我需要成功地关闭该文件使用同步打开的时候?

Answer 1:

你会从openFileSync得到些什么,除了一个文件描述符?

var fs = require('fs')
var path = require('path')
var fd = fs.openSync(path.join(process.cwd(), 'log.txt'), 'a')
fs.writeSync(fd, 'contents to append')
setTimeout(function () {
  console.log('closing file now')
  fs.closeSync(fd)
}, 10000)

运行lsof /path/to/log.txt而节点上面的脚本正在运行,且运行lsof /path/to/log.txt剧本完成后,再次显示该文件被正确关闭

这就是说什么是你想通过打开文件来实现? 也许有更好的方法,如流为您的具体情况



文章来源: How to get file descriptor in node.js if you open file using openSync