在Linux中,readdir
函數用于讀取目錄中的文件和子目錄。但是,readdir
本身并不提供文件的創建時間。要獲取文件的創建時間,你需要使用其他方法。
一種方法是使用stat
函數,它可以提供文件的詳細信息,包括創建時間(在某些系統上可能是更改時間)。以下是一個簡單的示例,展示了如何使用stat
函數獲取文件的創建時間:
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <filename>\n", argv[0]);
return 1;
}
struct stat file_stat;
if (stat(argv[1], &file_stat) == -1) {
perror("stat");
return 1;
}
printf("File creation time: %s", ctime(&file_stat.st_ctime));
return 0;
}
編譯并運行此程序,傳入一個文件名作為參數,它將輸出文件的創建時間。
請注意,st_ctime
表示的是文件的元數據更改時間,這在某些系統上可能不是文件的創建時間。在Linux上,文件的創建時間通常不可用,因為大多數文件系統不存儲這個信息。在這種情況下,你可以使用st_mtime
(修改時間)或st_atime
(訪問時間)作為參考。
如果你需要獲取文件的創建時間,并且你的文件系統支持這個特性,你可以嘗試使用statx
函數。這是一個更現代的函數,提供了更多的信息,包括文件的創建時間。但是,請注意,statx
函數在某些系統上可能不可用。