2
我需要注意基于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
}
为什么不使用'inotify'如果你的内核可用? –
inotify在我工作的生产系统上不可用。我无法在此系统上重新编译内核,也无法在系统上进行root访问。 – cooper