Folosesc Ubuntu 20.10 cu sursa kernel-ului 5.8.0-59.66
Trebuie să obțin ora curentă a zilei (din epocă) în nucleu. Folosind fie RHEL 7.9, fie CENTOS 7, m-am bazat pe funcția gettimeofday().
Pe scurt, documentația pare să indice că funcția există în Ubuntu -
http://manpages.ubuntu.com/manpages/bionic/man2/gettimeofday.2.html
în cadrul căruia se spune să includă următoarele
#include <sys/time.h>
Acest fișier sau de fapt directorul „sys” nu pare să existe în arborele sursă a nucleului meu. Dacă fac o „găsește” la time.h, găsesc câteva, inclusiv ~/include/linux/time.h, dar nu conține definiția funcției.
Oare imi scapa ceva aici? Sau poate există o metodă mai bună și/sau actualizată pentru a obține timpul în modul gettimeofday?
Funcționează bine pe celelalte moduri de kernel ale mele non-Ubuntu. Dar aceasta este prima mea experiență cu Ubuntu.
Am neglijat să adaug eroarea de compilare.
eroare: declarația implicită a funcției âgettimeofdayâ
[-Werror=declarație-implicit-funcție]
1329 | gettimeofday(&time);
Codul care utilizează această funcție este
struct tm timp;
gettimeofday(&time);
local_time = (u32)(time.tm_sec );
Vă rugăm să rețineți că acesta nu este codul exact în versiunile RHEL și Centos. Am făcut modificări minore pe baza erorilor compilatorului, cum ar fi time.tv_sec devenit time.tm_sec și, prin urmare, nu este dovedit.
Cu toate acestea, cred că prima problemă este că nu aveți definiția pentru gettimeofday? Sau aș putea greși...