Bekommen Zeitpunkt der letzten änderung der Datei in linux

Arbeite ich auf ein C-Programm wo ich brauche, um die Uhrzeit der letzten änderung der Datei. Was das Programm tut, ist eine Funktion in einer Schleife durch jede Datei in einem Verzeichnis und bei einer bestimmten Datei(en) gefunden wird, ruft eine andere Funktion, um zu überprüfen, dass die Letzte geänderte Zeiten für die Datei.

Innerhalb der Ordner gibt es eine mylog.txt.1, mylog.txt.2 und mylog.txt.3 etc. Wenn ich die Liste das Verzeichnis, in linux mit dem ll-Befehl kann ich sehen, dass mylog.txt.1 und mylog.txt.2 modifiziert wurden am 4. Mai und mylog.txt.3 geändert wurde am 3. Mai.

Wenn das Programm überprüft jede dieser Dateien ist es jedoch immer wiederkehrenden, den 3. Mai. Unten ist der code, den ich verwende.

void getFileCreationTime(char *filePath)
{
    struct stat attrib;
    stat(filePath, &attrib);
    char date[10];
    strftime(date, 10, "%d-%m-%y", gmtime(&(attrib.st_ctime)));
    printf("The file %s was last modified at %s\n", filePath, date);
    date[0] = 0;
}

Ich habe versucht, all die verschiedenen Variationen von st_ctime, d.h. st_mtime und st_atime aber Sie alle kehren Sie zurück 3. Mai.

Vielen Dank für jede Hilfe, die Sie bieten können.

vielleicht cleanup zuerst: warum pass eine Größe von 20 strftime während der Puffer ist 10 lang? warum nicht überprüfen Sie den Rückgabewert von stat? Wenn stat fehlschlägt, sind Sie Parsen einen Müll Wert.
sorry, war ein Tippfehler
stellen Sie sicher, dass Sie auf der Durchreise sind verschiedene filepath, auch "attrib.st_ctime" geben wird, die "Zeit der letzten Statusänderung", wenn Sie sind auf der Suche nach "die Zeit der letzten änderung" müssen Sie mit "attrib.st_mtime"

InformationsquelleAutor Boardy | 2012-05-04

Schreibe einen Kommentar