2011-12-28 9 views
8

मैं लिनक्स कर्नेल में मानव पठनीय टाइमस्टैम्प कैसे लिख सकता हूं? मुझे लगता है कि do_gettimeofday युग लौटाता है लेकिन मैं इसे पठनीय समय में बदलने की कोशिश नहीं करना चाहता हूं। मुझे सिर्फ Hour:Min:Sec:Msec जैसे प्रारूप चाहिए। धन्यवादलिनक्स कर्नेल में मानव पठनीय टाइमस्टैम्प

+1

do_gettimeofday आपकी सबसे अच्छी शर्त है। आप इसे स्वयं प्रारूपित करेंगे। किसी भी तरह का सटीक उपयोग केस क्या है? –

उत्तर

7

बाद में कर्नेल में मानव पढ़ने योग्य प्रारूप में युग के समय को तोड़ने के लिए time_to_tm फ़ंक्शन होता है।

struct timeval t; 
struct tm broken; 
do_gettimeofday(&t); 
time_to_tm(t.tv_sec, 0, &broken); 
printk("%d:%d:%d:%ld\n", broken.tm_hour, broken.tm_min, 
         broken.tm_sec, t.tv_usec); 

फिर, यह बाद में कर्नेल में ही उपलब्ध है:

यहाँ एक उदाहरण है। दूसरा पैरामीटर time_to_tm युग के समय का ऑफसेट है। मेरे स्थानीय समय में 0 है, मुझे नहीं पता कि आपको किस का उपयोग करना चाहिए।

1

हालांकि मुझे नहीं लगता कि इसके लिए कोई फ़ंक्शन है, यदि आपको दिन की आवश्यकता नहीं है तो आप इसे आसानी से कर सकते हैं।

struct timeval now; 
unsinged int temp, second, minute, hour; 
do_gettimeofday(&now); 
temp = now.tv_sec; 
second = temp%60; 
temp /= 60; 
minute = temp%60; 
temp /= 60; 
hour = temp%24; 
printf("%02d:%02d:%02d:%06d\n", hour, minute, second, now.tv_usec); 

ध्यान दें कि आपको स्थानीय समय पर जीएमटी समय मिलता है।

संबंधित मुद्दे