我注意到对于 openSync 来说可能有一个大问题,即当您使用 openSync 打开文件时,您不会获得文件描述符。如果使用异步调用打开,则只能将其作为回调的参数获取。问题是你必须有文件描述符才能关闭文件!程序员可能还想对您需要文件描述符的文件执行其他操作。
如果您使用同步调用打开,则 Node.js 的 fs API 似乎有一个重大遗漏,没有提供一种方法来访问以异步模式打开时回调返回的 fd 变量。这本质上会使同步打开对于大多数应用程序来说无法使用。
如果我可以避免的话,我真的不想在以后的开发中使用异步文件打开和关闭,有什么方法可以获取使用同步打开时成功关闭文件所需的 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)
Running lsof /path/to/log.txt
当上面的节点脚本正在运行并运行时lsof /path/to/log.txt
脚本完成后再次显示文件已正确关闭
这就是说您想通过打开文件来完成什么?也许有更好的方法,例如针对您的具体情况进行流式传输
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)