gpt4 book ai didi

c++ - 我如何监控文件上的锁以查看它何时被释放? [C++]

转载 作者:行者123 更新时间:2023-11-30 04:40:41 25 4
gpt4 key购买 nike

我正在寻找一种在 unmanaged c++ 中创建程序的方法,该程序等待文件解锁(因为它不再被使用)然后执行某些操作。我没有找到如何执行此操作的运气,我们将不胜感激!

更新:我可能已经回答了我自己的问题,请参阅下文并告诉我您的想法..

更新:真正重要的是文件是可写的,它是否仍在使用并不重要。

最佳答案

这样的事情会等待而不会浪费 cpu 周期。

HANDLE h = FindFirstChangeNotification("C:\Path to folder holding file", FALSE, FILE_NOTIFY_CHANGE_LAST_WRITE);

while(true)
{
if (CheckLockFile("C:\Path to file"))
{
// Do something
break;
}

WaitForSingleObject(h, APPROPRIATE_TIMEOUT_VALUE);
FindNextChangeNotification(h);
}

bool CheckLockFile(char* FilePath)
{
HANDLE fh = CreateFile(FilePath, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL);
if (fh == INVALID_HANDLE_VALUE)
{
return false;
}
CloseHandle(fh);

return true;
}

这假定锁定文件的应用程序已打开文件进行写入。

关于c++ - 我如何监控文件上的锁以查看它何时被释放? [C++],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/879530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com