ファイルの最終変更時刻を取得する必要がある C プログラムに取り組んでいます。プログラムが行うことは、関数がディレクトリ内の各ファイルをループし、特定のファイルが見つかったときに別の関数を呼び出して、ファイルの最終変更時刻を確認することです。
ディレクトリ内には、mylog.txt.1
などmylog.txt.2
がありmylog.txt.3
ます。Linux で ll コマンドを使用してディレクトリを一覧表示するmylog.txt.1
とmylog.txt.2
、5 月 4 日mylog.txt.3
に変更され、5 月 3 日に変更されたことがわかります。
ただし、プログラムがこれらの各ファイルをチェックすると、常に 5 月 3 日が返されます。以下は私が使用しているコードです。
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;
}
st_ctime
のさまざまなバリエーション、つまりst_mtime
andをすべて試しましst_atime
たが、それらはすべて 5 月 3 日に返されます。
ご協力いただきありがとうございます。