有什么方法可以限制访问文件的用户数量

时间:2019-11-22 10:23:13

标签: c++ file c++11 asynchronous

我正在一个巨大的依赖环境中进行编码,该环境中正在运行多个进程。在这个生态系统中,几乎所有正在运行的进程都需要修改一个文件。

在这里,每个进程对于相同的文件路径都具有不同的文件描述符。

有什么办法可以限制文件的打开,以便只能打开该文件的一个实例,并让所有其他实例排队?

我尝试过互斥和植绒,但是它们并没有真正达到目的。

请告诉我您认为有帮助的任何方式!

1 个答案:

答案 0 :(得分:2)

1。如果所有进程都在同一服务器上,则可以尝试使用os api,例如:

linux: https://gavv.github.io/articles/file-locks/

windows: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-lockfileex

2。如果所有进程都不在同一服务器上,则需要其他方法来执行此操作,例如:

zookeeper,redis或临时锁定文件。

3。如果您可以更改生态系统的体系结构,则最好对其进行重新设计。

一个“文件服务”可访问所有文件,而其他服务仅调用“文件服务”。