从 Linux 中的(非流)套接字读取时,我可以通过ioctl(sock, SIOCGSTAMP, &tv)
. 然而,这带来了两个问题:
- 这是另一个系统调用(我每秒收到大约 24000 条消息,所以每个系统调用都是可通知的)
- 如果使用这种方法,我一次只能
read()
发送一条消息,然后是ioctl()
获取时间戳。(如果我在 -call 中读取多条消息read()
,则以下ioctl
仅产生最后一条消息的时间戳。)
我的问题是如何在尽可能少的系统调用中实现接收消息及其时间戳。如果有一个具有诸如“读取与待处理消息及其时间戳一样多的消息”之类的语义的系统调用,那将是完美的。