最新のst_mtimeに基づいてディレクトリリストをソートしようとしていますが、構造体をソートする方法配列私は割り当てています。 ?どのように私は、最新の日付に応じて構造体を並べ替えることができます...ここに私の現在のアプローチがあります:statの呼び出しからctimeの戻り値を使用して構造体の配列をソートしようとしています
static int cmpstringp(const void *p1, const void *p2){
return strcmp(* (char * const *) p1, * (char * const *) p2);
}
struct directoryStat dStat{
char name[50];
char time[50];
};
int main(){
i = 0;
while ((ep = readdir(dp))){
stat(ep->d_name, &fileStat);
strcpy(dStat[i].name, ep->d_name);
strcpy(dStat[i].time, ctime(&fileStat.st_mtime));
i++;
}
}
qsort(dStat, i, sizeof(char), cmpstringp);
2.6カーネルので、 'stat'両方'構造体TIMESPEC st_ctim提供します。 'ctime'の呼び出しは、あなたが望むものではないと思われる形式の文字列を返します。\ n" '(see:* man ctime *)\" "水曜日Jun 30 21:49:08 1993 \ n" –
比較ルーチンは、サポートされている場合は、 'strptime'を使って時間文字列をバイナリ形式に変換し直すことができます。ただし、DSTの終わりにクロックが戻ってくる期間は、一部の時間文字列があいまいになります。 –