c++ Problem bei Synchronisation
-
Hallo Leute,
ich hab ein weiteres Problem.
Ich möchte mit der Funktion getfiletime die Zeit der letzten Änderung der Datei "SimResult.dat" auslesen.
Ich möchte dann in der main solange prüfen bis sich die Dateizeit von "Simresult.dat" geändert hat. Dazu habe ich folgendes geschrieben:#include <stdio.h> #include <iostream> #include <time.h> #ifdef __unix__ #include <sys/stat.h> #include <sys/types.h> #else #include <sys\stat.h> #endif using namespace std; //Funktionsprototypen long getfiletime(const char* path); int main(){ int oldfiletime; oldfiletime = getfiletime("SimResult.dat"); int newfiletime; //Prüfung ob Dateizeit von simresult sich geändert hat do { //Bildschirmmausgabe cout << "Warte auf Dateiänderung Simresult.dat \n"; newfiletime = getfiletime("SimResult.dat"); } while (newfiletime <= oldfiletime); } long getfiletime(const char* path){ long timeoffile; struct stat attribut; //Prüfung ob path vorhanden ZU ERGÄNZEN!!! stat(path, &attribut); //zur info: int stat(const char *pfad, struct stat *puffer); timeoffile = attribut.st_mtime; return timeoffile; }Nun kann ich aber auf die Datei SimResult.dat nicht mehr unter Windows zugreifen um sie zu ändern. Da anscheinend ständig auf die Datei zugegriffen wird. Unter Linux kann ich die Datei jedoch editieren. Was muss ich ergänzen damit das funktioniert?
Sinn der Sache ist, dass ich das C++-Programm mit einem anderen Programm synchronisieren möchte. Das C++-Programm soll solange warten bis das Windows-Programm die Datei geändert hat und erst dann im weiteren Code fortfahren.