我注意到,这可能是一个大问题,但对于OpenSync的,当你打开与OpenSync的一个文件,你没有得到的文件描述符。 如果您使用异步调用打开你只把它作为参数传递给回调。 问题是,你必须有文件描述符关闭文件! 有哪个程序员可能想要做的,你需要的文件描述符以及文件等东西。
这似乎FS的API,用于node.js的一个显著遗漏不提供一种方式来获得访问,在异步模式下打开,如果你打开使用同步调用时,回调返回FD变量。 这将从根本上使大多数应用的同步开unuseable。
我真的不希望有使用异步文件打开和我的开发关闭以后,如果我能避免它,有没有什么办法让FD可变我需要成功地关闭该文件使用同步打开的时候?
你会从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
剧本完成后,再次显示该文件被正确关闭
这就是说什么是你想通过打开文件来实现? 也许有更好的方法,如流为您的具体情况