,我使用GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,OPEN_ALWAYS和FILE_ATTRIBUTE_NORMAL作为参数。 然后我在整个文件上调用LockFileEx。我获得了排他锁,并从范围0锁定到UINT_MAX。在另一个进程中,我调用了:: CreateFileW(path.c_str(),perms,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);lockfileex不会停止create_always在一个进程中删除文件
它删除了文件的内容。当我的其他程序将文件锁定(仅限于)时,不应该无法做到这一点吗?
我希望其他进程能够获取文件句柄(这就是为什么我使用file_share标志),但我认为他们无法改变文件,而另一个进程锁定它,所以我正在做一些事情像
的CreateFile lockfileex
和具有它lockfileex阻塞,直到其他文件释放锁。这只是我或是msft的行为在这里错了吗?