不幸的是,它不是直接回答你的問題,而是你問替代方法來實現需求,這可能會有幫助。
#include <windows.h>
#include <stdio.h>
#include <ctime>
using namespace std;
int main()
{
HANDLE _configfile;
FILETIME _configFileTimeCreate, _configFileTimeModified;
SYSTEMTIME _systemUTC;
time_t start_time = time(NULL);
for (;;)
{
time_t now = time(NULL);
time_t diff = now - start_time;
if ((diff % 10) == 0) {
_configfile = CreateFile(L"config.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(_configfile == INVALID_HANDLE_VALUE) {
printf("Could not open file, error %ul\n", GetLastError());
return -1;
}
if(!GetFileTime(_configfile, &_configFileTimeCreate, NULL, &_configFileTimeModified)) {
printf("Something wrong!\n");
return FALSE;
}
else {
FileTimeToSystemTime(&_configFileTimeModified, &_systemUTC);
printf("UTC System Time format:\n");
printf("Modified on: %02d/%02d/%d %02d:%02d\n", _systemUTC.wDay, _systemUTC.wMonth, _systemUTC.wYear,
_systemUTC.wHour, _systemUTC.wMinute);
}
CloseHandle(_configfile);
}
Sleep(1000);
}
return 0;
}
這不是太可怕和優化。請注意,它會改變你的程序行爲,但是。以前可以編輯ini並立即啓動它,但是對於靜態的,他們必須重新啓動程序。 – StoryTeller
@StoryTeller對我而言並不重要。那麼你能否告訴我如何克服這種情況? –
您需要使用操作系統來獲取並緩存上次文件修改的時間戳。它應該比閱讀整個文件要快得多,所以你會看到性能提升,我想。 – StoryTeller