标签: c sockets timestamp system-calls
从Linux中的(非流)套接字读取时,我可以通过ioctl(sock, SIOCGSTAMP, &tv)获取上次收到的消息的(硬件生成的)时间戳。然而,这带来了两个问题:
ioctl(sock, SIOCGSTAMP, &tv)
read()
ioctl()
ioctl
我的问题是如何在尽可能少的系统调用中实现接收消息及其时间戳。如果存在一个具有语义的系统调用,例如“读取待处理的消息及其时间戳”,那将是完美的。
答案 0 :(得分:6)
使用recvmmsg(2)系统调用(如果内核可用),并设置SO_TIMESTAMP选项。
recvmmsg(2)
SO_TIMESTAMP