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
}
4

1 に答える 1