【发布时间】:2010-05-05 08:14:25
【问题描述】:
如何在 Windows 中锁定文件,使该文件只能由一个进程打开/读取/写入?
我发现通过将0 赋予dwShareMode 标志,可以使用CreateFile 锁定文件。它有效,但只有返回的句柄可用于处理文件。但我希望能够将文件锁定到其他进程,同时在我的进程中创建多个句柄。
请帮我解决这个问题或提供一些提示...
【问题讨论】:
如何在 Windows 中锁定文件,使该文件只能由一个进程打开/读取/写入?
我发现通过将0 赋予dwShareMode 标志,可以使用CreateFile 锁定文件。它有效,但只有返回的句柄可用于处理文件。但我希望能够将文件锁定到其他进程,同时在我的进程中创建多个句柄。
请帮我解决这个问题或提供一些提示...
【问题讨论】:
为什么需要在同一个进程中创建两次同一个文件?您可以在进程的所有 I/O 函数中使用一个句柄,而无需重新打开文件。如果您需要将句柄传递给另一个进程,您可以使用DuplicateHandle 函数。
【讨论】:
我认为你做不到。最接近的方法是第一次使用 CreateFile 打开/锁定文件,然后使用 DuplicateHandle 从已有的句柄创建多个句柄
【讨论】: