相关疑难解决方法(0)

为什么不建议使用fstat

我正在阅读这里stat方法手册,它说:

在调用fs.open()之前使用fs.stat()检查文件是否存在,建议不要使用fs.readFile()或fs.writeFile().相反,用户代码应直接打开/读取/写入文件,并在文件不可用时处理引发的错误.

要检查文件是否存在而不事后对其进行操作,建议使用fs.access().

所以,我有两个问题:

  • 为什么使用错误处理程序是fs.stat()检查文件存在的首选方法?

  • 而且由于我可以fs.access()用来检查文件是否存在,是否使用error handler机制仍然是首选的方式来确保文件是打开的?

我想我找到了第二个问题的答案:

在调用fs.open()之前,使用fs.access()检查文件的可访问性,不建议使用fs.readFile()或fs.writeFile().这样做会引入竞争条件,因为其他进程可能会在两次调用之间更改文件的状态.相反,用户代码应该直接打开/读取/写入文件,并处理在文件无法访问时引发的错误.

因此,可能fs.open()阻止文件的其他进程,而fs.stat()fs.access()简单的请求信息和其他进程仍然可以修改/删除文件.

javascript node.js

6
推荐指数
1
解决办法
250
查看次数

标签 统计

javascript ×1

node.js ×1