【问题标题】:Is it possible to execute net_enable_timestamp() from user space in linux?是否可以从 linux 的用户空间执行 net_enable_timestamp()?
【发布时间】:2010-12-08 21:45:01
【问题描述】:

我想启用时间戳接收的网络数据包。我发现函数 net_enable_timestamp() 应该这样做,但我在 CentOS 和 ArchLinux 中都找不到它。但是当我执行时:

# cat /proc/kallsyms | grep net_enable_timestamp
c126a330 T net_enable_timestamp

在 kernel.org 的内核源代码中,它位于 linux/netdevice.h,但不在上述两个发行版中。是否可以执行?怎么样?

【问题讨论】:

    标签: linux network-programming linux-kernel


    【解决方案1】:

    在套接字上启用 SO_TIMESTAMP 并通过辅助数据访问最后一条消息的时间戳有什么问题?

    您也可以按照 socket(7) 中的说明调用 ioctl(socket, SIOCGSTAMP)


    编辑:查看内核源代码,似乎 net_enable_timestamp() 实际上在您执行 setsockopt(sock, SO_TIMESTAMP ... 时被间接调用 ...

    所以我的回答回答了你的问题:)

    【讨论】:

    • 是的!你说的对!我不知道为什么我在挖掘内核源代码并试图解决我的问题时省略了 .c 文件。
    猜你喜欢
    • 2011-02-11
    • 2016-04-20
    • 1970-01-01
    • 2010-10-27
    • 2014-01-14
    • 2018-10-26
    • 2011-07-11
    • 1970-01-01
    相关资源
    最近更新 更多