Я использую Ubuntu 20.10 с исходным кодом ядра 5.8.0-59.66.
Мне нужно получить текущее время суток (от эпохи) в ядре. Используя либо RHEL 7.9, либо CENTOS 7, я полагался на функцию gettimeofday().
Короче говоря, документация указывает на то, что функция существует в Ubuntu -
http://manpages.ubuntu.com/manpages/bionic/man2/gettimeofday.2.html
в котором говорится о включении следующих
#include <sys/time.h>
Этот файл или фактически каталог «sys», похоже, не существует в моем дереве исходных текстов ядра. Если я выполняю поиск в time.h, я нахожу несколько файлов, включая ~/include/linux/time.h, но они не содержат определения функции.
Я что-то упустил здесь? Или, возможно, есть лучший и/или обновленный метод получения времени в виде gettimeofday?
Он отлично работает на других моих модах ядра, отличных от Ubuntu. Но это мой первый опыт работы с Ubuntu.
Я забыл добавить ошибку компиляции.
ошибка: неявное объявление функции «gettimeofday»
[-Werror=неявное-объявление-функции]
1329 | получить время дня (& время);
Код, использующий эту функцию,
структурировать время;
получить время дня (& время);
local_time = (u32)(time.tm_sec);
Имейте в виду, что это не точный код в версиях RHEL и Centos. Я внес небольшие изменения, основанные на ошибках компилятора, например, time.tv_sec стал time.tm_sec, и поэтому это не доказано.
Однако я думаю, что первая проблема заключается в отсутствии определения для gettimeofday? Или я могу ошибаться...