gpt4 book ai didi

c - 套接字读取和时间戳

转载 作者:太空狗 更新时间:2023-10-29 15:01:01 26 4
gpt4 key购买 nike

当从 Linux 中的(非流)套接字读取时,我可以通过 ioctl(sock, SIOCGSTAMP, &tv) 获取最后收到的消息的(硬件生成的)时间戳。然而,这带来了两个问题:

  • 这是另一个系统调用(我每秒收到大约 24000 条消息,因此每个系统调用都是可通知的)
  • 如果使用这种方法,我一次只能read() 一条消息,然后使用ioctl() 获取时间戳。 (如果我在 read() 调用中阅读了多条消息,则以下 ioctl 只会产生最后一条消息的时间戳。)

我的问题是如何在尽可能少的系统调用中接收消息及其时间戳。如果有一个语义如“读取尽可能多的未决消息及其时间戳”的系统调用,那将是完美的。

最佳答案

使用recvmmsg(2)系统调用,如果你的内核可用,并设置 SO_TIMESTAMP选项。

关于c - 套接字读取和时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13304672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com