在 Linux 内核中,我得到了仅在启动时定义一次的定义 tcp_time_stamp_jiffies
:
#define tcp_time_stamp_jiffies ((__u32)(jiffies))
但是每次在方法、循环或事件中调用tcp_time_stamp_jiffies
时,值都会发生变化..并递增。定义不是只定义了 1 且值 jiffies 在启动时只有 1 个值,那么该值应该一次又一次地使用,而不是一次又一次地调用 jiffies?
尝试添加首次启动时需要值tcp_time_stamp jiffies
的自定义模块/驱动程序
#include <linux/proc_fs.h>
#include <net/tcp.h>
#define tcp_time_stamp_jiffies ((__u32)(jiffies))
static ssize_t myread(struct file *file, char __user *ubuf,size_t count, loff_t *ppos)
{
....
printk(KERN_ALERT "tcp_time_stamp_jiffies value : %u\n", tcp_time_stamp_jiffies);
.....
}
预计每个函数 myread 都会被调用,它会在第一次/启动时显示 tcp_time_stamp_jiffies
值。相反,它会显示每次调用时都会增加的数字,该数字总是不同的。
最佳答案
宏 (#define
) 是文本替换。
每次编写 tcp_time_stamp_jiffies
时,编译器都会将其替换为 ((__u32)(jiffies))
。它每次都会读取jiffies
的值。
关于c - Linux内核: define function that inside calls 'jiffies' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55603776/