在加载/需要时锁定文件

好的
  1. 在文件load-ed / require-d期间,文件是否被锁定写?
  2. 如果没有,如何在load/期间独占锁定文件以防止写入require

File#flock如果可能的话,应该使用它,但是我不知道第一个问题的答案以及如何将其与load/结合使用require

塔德曼

打开文件时,仅有的保护是文件被删除,从文件系统取消链接并成为孤立的文件后,您仍然可以读取其中的内容。从那时起,关闭文件将无权对其进行任何访问。这就是它是如何工作在任何情况下,POSIX类型的系统中,Windows可能会有所不同。

没有什么可以防止另一个进程在您的进程尝试执行其操作时覆盖文件的一部分或将其截断。

请记住,File#flock这只是请求锁的一种礼貌方式,除非要操纵该文件的其他进程礼貌并且检查您对文件状态的保证没有任何保证。进程可以随意忽略它,并在不发出警告的情况下处理您的文件。

确保没有人触摸您文件的唯一方法是将其复制到私有/tmp目录,测试该文件是否正确复制,然后从那里读取文件。这是一件极其偏执的事情,所以我希望您在走这条路之前有一个令人信服的理由。

如果您可以控制访问文件的所有过程,并使它们成为行为良好的公民,并对文件使用一致的锁定机制,则可能会很好。如果不是这种情况,您可能希望拥有一个主进程,该进程使用某种IPC信令以独占方式授予对文件的访问权限。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

需要Ruby文件时如何发现加载了哪些类

来自分类Dev

加载FXML文件时出现“需要位置”异常

来自分类Dev

加载FXML文件时出现“需要位置”异常

来自分类Dev

GOMAXPROCS为1时是否需要锁定

来自分类Dev

PhpStorm:加载外部文件会锁定程序

来自分类Dev

在异步写入文件时如何锁定文件

来自分类Dev

仅在需要时加载DLL

来自分类Dev

仅在需要时加载图像

来自分类Dev

使用Java Logger时锁定文件

来自分类Dev

SVNKit:提交锁定文件时出现SVNException

来自分类Dev

尝试拉下.exe文件时TFS锁定

来自分类Dev

ConcurrentDictionary和原子操作-有时需要锁定?

来自分类Dev

在Vaadin 7中调用VaadinSession getAttribute时需要锁定

来自分类Dev

ConcurrentDictionary和原子操作-有时需要锁定?

来自分类Dev

访问不会更改的全局数据时是否需要锁定?

来自分类Dev

删除脚本中不需要的文件锁定

来自分类Dev

`javax.imageio.ImageIO`是否需要文件锁定?

来自分类Dev

在后台线程中加载数据时,UI线程锁定

来自分类Dev

加载时需要表格gotorecord = Date()

来自分类Dev

Requirejs:仅在需要时加载依赖项

来自分类Dev

需要在多个文件中自动加载

来自分类Dev

如何修复 webpack 错误:“你可能需要一个合适的加载器来处理这种文件类型。” 当我使用 webpack 加载 css 文件时

来自分类Dev

加载YAML文件时出错

来自分类Dev

从文件加载时使用SimpleXMLElement

来自分类Dev

加载“需要”宝石时在红宝石中加载错误

来自分类Dev

通过Webpack导入节点模块时出错,“您可能需要适当的加载程序来处理此文件类型”

来自分类Dev

何时需要锁定

来自分类Dev

何时需要锁定

来自分类Dev

上载事务中的文件时防止数据库锁定

Related 相关文章

热门标签

归档