2012-11-25 12 views
8

Was ist der Standard Weg, um die aktuelle Zeit in Sekunden (seit der Epoche) in einem Kernel-Modul zu bekommen?Aktuelle Zeit in Sekunden im Kernel-Modul

Ich habe Techniken gesehen, die xtime beinhalten, die sehr langatmig sind und while-loops und locks beinhalten. Es muss einen besseren Weg geben.

[Dies ist kein Duplikat. Ich habe frühere Fragen zu SO durchgesehen. Die Antworten auf viele von diesen geben entweder die verwendete Funktion nicht an oder beziehen sich falsch auf time.h, was im Kernel nicht erlaubt ist]

+0

was ist mit http://stackoverflow.com/questions/5077192/how-to-get-current-hour-time-of-day-in-linux-kernel-space – MOHAMED

Antwort

13

Sie können getnstimeofday dafür verwenden.

/* getnstimeofday - Returns the time of day in a timespec */ 
void getnstimeofday(struct timespec *ts) 

wo struct timespec ist:

struct timespec { 
    time_t tv_sec;  /* seconds */ 
    long tv_nsec; /* nanoseconds */ 
}; 

Und ja, Sie #include <linux/time.h> benötigen.

+0

Dead Link. Eine Google-Suche nach "man getnstimedayday" erhält eine Anzahl von Treffern. –

+0

@KeithThompson Die Verknüpfung wurde geändert. Danke für das Heads-up! – cnicutar

+1

Ein Link zu einer Manpage könnte nützlicher sein. –