Windows支持LockFile函数对文件应用排他锁,以及LockFileEx函数对所有进程应用排他锁和共享读取。
是否可以让ProcessA应用排它锁,然后允许 Only ProcessA And ProcessB读取该文件,而此时,除了这两个进程之外,没有任何其他进程对锁定的文件具有读访问权限?
Windows支持LockFile函数对文件应用排他锁,以及LockFileEx函数对所有进程应用排他锁和共享读取。
是否可以让ProcessA应用排它锁,然后允许 Only ProcessA And ProcessB读取该文件,而此时,除了这两个进程之外,没有任何其他进程对锁定的文件具有读访问权限?
1条答案
按热度按时间lhcgjxsq1#
根据文件:LockFileEx function
排他锁不能与文件的现有锁定区域重叠。如果锁定区域上持有的锁是共享锁,则共享锁可以与该区域重叠。如果共享锁和排他锁是使用同一文件句柄创建的,则共享锁可以与排他锁重叠。当共享锁与排他锁重叠时,唯一可能的访问权限是锁的所有者进行读取。
在我看来,排他锁不允许读写操作,共享锁只允许读操作。
如果使用LockFileEx函数将文件设置为
Exclusive lock
,则将拒绝所有其他进程的读写访问。如果使用LockFileEx函数将文件设置为Shared lock
,则所有进程都可以读取锁定区域。如果同时将文件设置为shared lock
和exclusive lock
,则唯一可能的访问是锁的所有者进行读取。