windows 两个独占处理的文件锁定

6fe3ivhb  于 2023-01-14  发布在  Windows
关注(0)|答案(1)|浏览(175)

Windows支持LockFile函数对文件应用排他锁,以及LockFileEx函数对所有进程应用排他锁和共享读取。
是否可以让ProcessA应用排它锁,然后允许 Only ProcessA And ProcessB读取该文件,而此时,除了这两个进程之外,没有任何其他进程对锁定的文件具有读访问权限?

lhcgjxsq

lhcgjxsq1#

根据文件:LockFileEx function
排他锁不能与文件的现有锁定区域重叠。如果锁定区域上持有的锁是共享锁,则共享锁可以与该区域重叠。如果共享锁和排他锁是使用同一文件句柄创建的,则共享锁可以与排他锁重叠。当共享锁与排他锁重叠时,唯一可能的访问权限是锁的所有者进行读取。
在我看来,排他锁不允许读写操作,共享锁只允许读操作。
如果使用LockFileEx函数将文件设置为Exclusive lock,则将拒绝所有其他进程的读写访问。如果使用LockFileEx函数将文件设置为Shared lock,则所有进程都可以读取锁定区域。如果同时将文件设置为shared lockexclusive lock,则唯一可能的访问是锁的所有者进行读取。

相关问题