如果我的程序需要一些在运行时(启动期间)无法修改的基本配置文件,那么在其目录环境中实现锁定的正确方法是什么?
详细信息:
我想的情况是:只有软件本身才能修改文件。因此,我需要保护环境免受其他软件实例的影响。该软件也可能由几个不同的程序组成。所以,我需要找到一个直接在流程之间共享的接口。
创意1:
一种方法是为每个配置文件获取锁(flock)。这实施和维护几乎是不切实际的。
创意2:
我一直在考虑的第二种方法是在启动期间在我的目录中创建.lock文件,并在配置文件可以安全修改时将其删除。我见过许多使用类似方法的商业软件。但是,我怀疑这些操作缺乏原子性可能是个问题。当多个应用程序可能同时尝试创建/轮询/删除锁定文件时,此方法是否安全?