में फ़ाइल का अंतिम संशोधित समय प्राप्त करें मैं एक सी प्रोग्राम पर काम कर रहा हूं जहां मुझे फ़ाइल का अंतिम संशोधित समय प्राप्त करने की आवश्यकता है। प्रोग्राम क्या करता है एक फ़ंक्शन निर्देशिका के भीतर प्रत्येक फ़ाइल के माध्यम से लूप करता है और जब कोई विशेष फ़ाइल पाई जाती है तो यह फ़ाइल के अंतिम संशोधित समय की जांच करने के लिए एक और फ़ंक्शन कॉल करता है।लिनक्स
निर्देशिका के भीतर वहाँ एक mylog.txt.1
, mylog.txt.2
और mylog.txt.3
आदि मैं का उपयोग कर डालूँगा आदेश मैं देख सकता हूँ कि mylog.txt.1
और mylog.txt.2
4 थी मई को संशोधित किया गया और mylog.txt.3
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
और st_atime
के सभी विभिन्न रूपों की कोशिश की है लेकिन वे सभी वापसी 3 हो सकता है।
आपकी सहायता के लिए धन्यवाद।
शायद सफाई पहले: क्यों 'strftime' करने के लिए 20 की एक आकार पारित जबकि बफर 10 लंबा है? 'stat' के वापसी मूल्य की जांच क्यों न करें? यदि 'stat' विफल हो जाता है, तो आप कचरा मूल्य पार्स कर रहे हैं। – mvds
@mvds क्षमा करें कि एक टाइपो – Boardy
यह सुनिश्चित कर लें कि आप अलग-अलग फ़ाइलपैथ पास कर रहे हैं, "attrib.st_ctime" "अंतिम स्थिति परिवर्तन का समय" देगा, यदि आप "अंतिम संशोधन का समय" ढूंढ रहे हैं तो आपको " attrib.st_mtime " – ray