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