如何在Windows中锁定文件?

3
如何在Windows中锁定文件,以便该文件只能被一个进程打开/读取/写入?
我发现可以通过在CreateFile中将dwShareMode标志设置为0来锁定文件。它有效,但只有返回的句柄才能用于处理文件。但是我希望能够将文件锁定到其他进程,并同时在我的进程中创建多个句柄。
请帮助我解决这个问题或给出一些提示...
2个回答

2

为什么需要在同一进程中创建两个相同的文件?您可以在所有I/O函数中使用一个句柄,而无需重新打开文件。如果您需要将句柄传递给另一个进程,则可以使用DuplicateHandle函数。


我正在使用各种库,其中它们调用CreateFile,但由于文件被锁定,因此失败了。所以我想知道是否可能将文件锁定供其他进程使用,但不锁定我的进程。 - Rustam Shakirov
1
你可以选择将句柄传递给库或不锁定文件。 - Kirill V. Lyadvinsky

1

我认为你无法这样做。最接近的方法是使用CreateFile打开/锁定文件,并使用DuplicateHandle从已有的句柄创建多个句柄。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接