Intereting Posts
Как экспортировать массив C в Python Уникальные числа в массиве Возможная коррупция в стеках Как запустить ulimit -c без ограничений автоматически Правильный способ отключения приложения C для обеспечения завершения разделов CRITICAL? Сокеты: что вызывает чтение () для возврата EINVAL? C Функция для преобразования массива float в байты Как заставить GDB выйти из цикла? Невозможно заставить таблицу функций указать конкретный адрес с помощью компилятора IAR ARM Рекурсивное освобождение C-структур Инициализация статического массива в C Предупреждение компилятора для функции, определенной без прототипа в области? выполнить функцию GCC cas для версии 4.1.2 и более ранних версий Необработанный указатель превращается в нуль, проходящий от Rust до C Каким будет значение в float, если у меня есть двоичное число, как 1111111111111111, а форматы хранения, используемые процессорами Intel, – 32 бита?

как получить timetamp для ядра linux?

int netif_rx(struct sk_buff *skb) { if(skb -> stamp.tv_sec ==0) do_gettimeofday(&skb->stamp); } 

выше api – сторона-получатель api, которая принимает данные от отправителя. Я хочу рассчитать время, когда он получает данные и хранит их в буфере. приведенный выше api на строке номер 2993 доступен в исходном коде ядра по адресу: /linux/net/core/dev.c
но я получаю ERROR: поскольку struct sk_buff не имеет имени с именем stamp.

http://lxr.free-electrons.com/source/include/linux/skbuff.h Может ли кто-то помочь мне: как получить отметку времени для ядра Linux.

Позже я изменил свой код на:

  int netif_rx(struct sk_buff *skb) { if(skb -> tstamp.off_sec ==0) do_gettimeofday(&skb->tstamp); } 

теперь я получаю ошибку: ktime_t не имеет memeber с именем «tv_sec». struct timeval, но аргумент имеет тип unio ktime_t.

sk_buff->tstamp является переменной типа ktime_t . do_gettimeofday устанавливает время переменной переменной struct timeval . Здесь у вас разные типы, и вам нужно преобразование. Простым было бы:

 int netif_rx(struct sk_buff *skb) { if(skb -> tstamp.off_sec ==0) { struct timespec now; getnstimeofday(&now); skb->tstamp = timespec_to_ktime(now); } } 

Попробуйте использовать tstamp вместо stamp .