我想使用文件的临时目录作为需要在远程目录中读取和写入的多个应用程序(来自多台计算机)的锁,但在文档中未解决此问题。有谁知道两个同时调用会发生什么情况?
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363855%28v=vs.85%29.aspx
注意:我知道最好使用数据库,但在我的情况下这是不可能的。
最佳答案
当您调用 CreateDirectory
时,传递相同的目录名,来自不同的机器,只有一次调用会成功。 API 函数只会返回 TRUE
如果它是实际创建目录的调用。拥有文件系统的机器上的操作系统使这个过程原子化。
但是,在对 CreateDirectory
的两次调用之间,没有什么可以阻止另一个进程进入并删除目录。因此,虽然您可以获得一种原始形式的锁定工作,但它不是很健壮,需要各方合作。
同样的推理也适用于 CreateFile
。
关于c++ - 从不同机器同时调用 CreateDirectory 或 CreateFile 时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463734/