我需要注意在基于 Unix 的系统上对文件的修改,但我无权访问 Boost。我想知道以下逻辑是否合理。我认为它可能效率低下,而且我知道我在 while 循环中根本不睡觉而浪费了大量的周期,但我没有估计文件在修改之间要经过多长时间,我需要知道相对较快:
std::time_t getTimeLastModified(const char* filename){
struct stat fileattrib;
stat(filename, &fileattrib);
return fileattrib.st_mtime;
}
int main(){
std::time_t file1_modified_time = getTimeLastModified(coor_file.c_str());
while(difftime(getTimeLastModified(coor_file.c_str()),file1_modified_time)==0){}
// If program execution gets here, file has been modified
}