Dies ist einer jener Fälle, in denen Zeitzonen eine Rolle spielen. Du bekommst mylog.txt.1
von mylog.txt.2
. Sie sollten stattdessen mylog.txt.3
viz.
Das liegt daran, dass mylog.txt.1
Ihre Zeitzoneninformationen verwendet und wenn Sie mylog.txt.2
als Teil der Anzeige verwendet haben, hat es bewusst keine Zeitzoneninformationen weggelassen.
Das hat gut für mich funktioniert:
%Vor%Dinge zu beheben:
mylog.txt.3
. st_ctime
erfolgreich ist, bevor Sie das Ergebnis verwenden. st_mtime
, um das Risiko zu beseitigen, die falsche Puffergröße zu verwenden. Ich habe zuerst vermutet, dass Ihr Dateisystem die zuletzt geänderte Zeit nicht unterstützt, aber da Sie sagen, dass andere Tools es zeigen, vermute ich, dass der Code aus irgendeinem Grund bricht.
Könnte es sein, dass die Dateinamen keine vollständigen Pfadnamen sind, d. h. sie enthalten nicht das richtige Verzeichnispräfix?
Dies ist einer jener Fälle, in denen Zeitzonen eine Rolle spielen. Du bekommst gmtime
von st_mtime
. Sie sollten stattdessen localtime
viz.
Das liegt daran, dass ls
Ihre Zeitzoneninformationen verwendet und wenn Sie gmtime
als Teil der Anzeige verwendet haben, hat es bewusst keine Zeitzoneninformationen weggelassen.
Dinge zu beheben:
st_ctime
. stat()
erfolgreich ist, bevor Sie das Ergebnis verwenden. strftime(date, sizeof date, ...
, um das Risiko zu beseitigen, die falsche Puffergröße zu verwenden. Ich habe zuerst vermutet, dass Ihr Dateisystem die zuletzt geänderte Zeit nicht unterstützt, aber da Sie sagen, dass andere Tools es zeigen, vermute ich, dass der Code aus irgendeinem Grund bricht.
Könnte es sein, dass die Dateinamen keine vollständigen Pfadnamen sind, d. h. sie enthalten nicht das richtige Verzeichnispräfix?
Tags und Links c linux last-modified timestamp