Tôi muốn để có được những ngày sửa đổi cuối cùng của một tập tin trong C. Hầu như tất cả các nguồn tôi thấy sử dụng cái gì đó dọc đoạn này:Lấy ngày sửa đổi cuối cùng của một tập tin trong C
char *get_last_modified(char *file) {
struct tm *clock;
struct stat attr;
stat(file, &attr);
clock = gmtime(&(attr.st_mtime));
return asctime(clock);
}
Nhưng attr
doesn' thậm chí có trường st_mtime
, chỉ st_mtimespec
. Tuy nhiên, khi sử dụng Eclipse của tôi cho tôi biết rằng passing argument 1 of 'gmtime' from incompatible pointer type
trên dòng clock = gmtime(&(attr.st_mtimespec));
Tôi đang làm gì sai?
PS: Tôi đang phát triển trên OSX Snow Leopard, Eclipse CDT và sử dụng GCC như trình biên dịch Cross-Platform
Có, nếu không, 'stat' sẽ không khả dụng. –
Mặc dù OT: Bạn không muốn lưu trữ tham chiếu được trả về bởi 'get_last_modified()' đúng không? 'asctime()' trả về một tham chiếu đến bộ nhớ tĩnh, nội dung của nó sẽ được ghi đè lên mỗi lần gọi liên tiếp đến nó. – alk
Nó chỉ được gọi một lần, nhưng tôi sẽ giữ nó trong tâm trí nên có bao giờ thay đổi :) –